javascript
SpringMVC学习(一)——快速搭建SpringMVC开发环境(非注解方式)
目錄
- 1、開發環境準備
- 1.1、首先電腦需要安裝JDK環境(略)
- 1.2、準備一個以供開發的tomcat
- 1.3、準備Maven工具
- 1.4、準備IDE編譯器
- 1.5、準備一個本地的數據庫,
- 2、搭建SpringMVC開發環境
- 2.1、創建web工程
- 2.2、使用maven引入相關的依賴
- 2.3、項目的整體結構圖
- 2.4、新增springmvc-servlet的配置文件
- 2.5、web.xml核心配置
- 2.5、第一個HelloController
- 2.6、配置Tomcat服務并啟動
- 2.7、增加數據庫配置
- 2.8、訪問數據庫測試
- 3、框架搭建過程注意事項
- 3.1、創建maven項目特別緩慢?
- 3.2、applicationContext.xml和springmvc-servlet.xml區別?
- 3.3、ApplicationContext和WebApplicationContext的關系?
1、開發環境準備
1.1、首先電腦需要安裝JDK環境(略)
說明:本機使用的是JDK1.8.0_45,一定要記得配置環境變量。
1.2、準備一個以供開發的tomcat
說明:本機使用的是Tomcat 8.0.35。
1.3、準備Maven工具
說明:因為本機使用的是maven構建項目,本機使用的Maven版本為apache-maven-3.1.0。
1.4、準備IDE編譯器
說明:本次開發使用的是IDEA,如果使用Eclipse也不影響開發。
1.5、準備一個本地的數據庫,
說明:本機使用的是mysql數據庫,目的是為了測試數據庫連接以及訪問,數據庫版本為mysql 5.1.41。
注意一下,上面是本次開發使用的開發環境的前期準備工作,如果是沒有進行過開發的小白可提前把開發環境搭建好,搭建開發環境的案例很多,本次就不再贅述了。
2、搭建SpringMVC開發環境
2.1、創建web工程
首先使用Maven工具創建一個webapp工程,選擇 File -> New Module ->Maven,選中“Create from archetype”,選擇如下圖的webapp工程
然后選擇“下一步”填入相應的字段知道完成項目創建,如果此處創建過程非常慢,請參考注意事項3.1。
2.2、使用maven引入相關的依賴
本例中使用的spirngmvc的版本為4.3.25.RELEASE
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- springmvc核心依賴 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- tomcat中存在此web運行的jar包 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency><!-- 使用SpringJDBC進行數據庫配置 --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><!-- mysql數據庫連接的驅動--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency><!-- Spring-test配合junit使用 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency>2.3、項目的整體結構圖
本例中的springmvc的整體結構圖如下圖所示:
2.4、新增springmvc-servlet的配置文件
在resources目錄下新增加一個myspringmvc-servelet.xml文件,可以參考一下配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 處理器映射器,將處理器Handler的name作為URL進行查找 --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean><!-- 處理器適配器,適配處理器中handlerRequest方法的調用 --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean><!-- 配置視圖解析器,把handler方法返回的邏輯視圖解析為實際的物理視圖 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean> </beans>2.5、web.xml核心配置
增加springmvc的核心配置DispatcherServlet,配置效果如下所示:
<servlet><!-- 配置核心控制 servlet的名字決定了核心配置文件的命名:springmvc-servlet.xml --><servlet-name>myspringmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定spring配置文件的位置,如果不配置默認/WEB-INF/[servlet-name]-servlet --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:myspringmvc-servlet.xml</param-value></init-param><!-- 項目啟動時加載 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>myspringmvc</servlet-name><!-- 配置url-pattern,設置為"/"表示攔截到所有的URL請求并映射到myspringmvc,包括靜態資源如html, js, jpg等--><url-pattern>/</url-pattern></servlet-mapping>2.5、第一個HelloController
編寫第一個SpringMVC的Controller,需要繼承自org.springframework.web.servlet.mvc.Controller
示例代碼如下:
上面的示例中需要在/WEB-INF/views/增加一個“success”的測試頁面,測試頁面的代碼如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <body> <h2>你好,跳轉到success了!!!</h2> <h3>${data}</h3> </body> </html>編寫完HelloController后需要在myspringmvc-servlet.xml中增加這個controller的配置
<!-- 第一個springMVC測試程序 --><bean id="helloController" name="/hello" class="com.leo.controller.HelloController"></bean>好了,第一個Controller到這里已經編寫完畢了,現在開始啟動測試一下了。
2.6、配置Tomcat服務并啟動
然后配置啟動的tomcat的位置和參數,可以參考筆者配置
部署項目的war包并且配置上下文路徑,參考筆者如下圖
啟動tomcat
訪問地址:http://localhost:8080/springmvc/
2.7、增加數據庫配置
新增加數據庫的配置信息,在pom.xml中增加如下配置(如果已經添加的請忽略),本示例中沒有引入第三方框架,使用的是spring內置的jdbc框架
<!-- 使用SpringJDBC進行數據庫配置 --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><!-- mysql數據庫連接的驅動--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency>在resources目錄下新增applicationContext.xml配置文件,并且添加如下內容:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- Spring內置連接池 --><bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/springframework_learning"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean><!--指定連接池--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="driverManagerDataSource"></property></bean><!-- 將這個工具類實例化給spring容器管理,不然會報空指針異常 --><bean id="beanUtil" class="com.leo.util.ApplicationContextUtil"></bean><!-- 測試的bean --><bean id="userInfoService" class="com.leo.service.impl.UserInfoServiceImpl"></bean> </beans>并且在web.xml中將配置文件applicationContext.xml添加進去
<!-- 配置應用公共配置 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 定義Spring監聽器,加載Spring --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>這里要注意一下applicationContext.xml和myspringmvc-servlet.xml都可以注入bean那他們的區別是什么?答案參考3.2
2.8、訪問數據庫測試
需要新寫一個Controller,代碼參考如下
public class GetUserInfoController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {UserInfoService userInfoService = (UserInfoService) ApplicationContextUtil.getBean("userInfoService");System.out.println("GetUserInfoController獲取用戶信息");ModelAndView modelAndView = new ModelAndView();//訪問數據庫List userInfoList = userInfoService.getUserInfoList();System.out.println(userInfoList);modelAndView.addObject("data", userInfoList);modelAndView.setViewName("success");//跳轉到/WEB-INF/views/success.jspreturn modelAndView;} }還需要將新的Controller注冊到myspringmvc-servlet.xml配置文件中
<!-- 獲取用戶信息 --><bean id="getUserInfoController" name="/getUserInfo" class="com.leo.controller.GetUserInfoController"></bean>然后啟動tomcat訪問:http://localhost:8080/springmvc/getUserInfo
具體的代碼地址為:chapter-1-springmvc-quickstart
(https://gitee.com/leo825/spring-framework-learning-example.git)
3、框架搭建過程注意事項
3.1、創建maven項目特別緩慢?
如果遇到創建maven過程特別緩慢的情況,需要在Setting添加一些mirror配置。操作如下:
首先找到項目中maven的settings配置文件位置,File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven
其次,在maven的settings配置文件的“mirrors”節點下添加mirror配置,然后保存,重新創建一下webapp試試。
3.2、applicationContext.xml和springmvc-servlet.xml區別?
二者區別如下:
applicationContext.xml這個一般是采用非spring mvc架構,用來加載Application Context。應用于多個servlet,配合listener一起使用。
如果直接采用SpringMVC,只需要把所有相關配置放到xxx-servlet.xml中就OK了。 如果直接使用SpringMVC是可以不添加applicationContext.xml文件的。 也可以使用applicationContext.xml添加一些公共類的bean和配置。
3.3、ApplicationContext和WebApplicationContext的關系?
ApplicationContext是Spring容器上下文,WebApplicationContext是Web容器上下文,WebApplicationContext繼承自ApplicationContext,因此只要是ApplicationContext中注冊的Bean都能在WebApplicationContext中獲取到,反之則不然。
總結
以上是生活随笔為你收集整理的SpringMVC学习(一)——快速搭建SpringMVC开发环境(非注解方式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC学习——对于Sprin
- 下一篇: Spring容器中获取Bean实例的七种