整合SpringMVC框架和Spring框架
-------------------------siwuxie095
整合 SpringMVC 框架和 Spring 框架
1、匯入相關jar 包(共 17 個)
(1)匯入Spring 的核心 jar 包和日誌相關的 jar 包(6 個)
Commons Logging下載連結:
LOG4J 下載連結:
(2)匯入Spring 的 AOP 開發的 jar 包(4 個)
AOP Alliance下載連結:
AspectJ Weaver下載連結:
(3)匯入Spring 的JDBC 開發的 jar 包(2 個)
(
(5)匯入SpringMVC 的 jar 包(1 個)
(6)匯入SpringMVC 中使用 JSON 所需的 jar 包(3 個)
Jackson Core 下載連結:
Jackson Annotations 下載連結:
Jackson Databind 下載連結:
2、測試
(1)編寫一個Controller 類
UserController.java:
package com.siwuxie095.controller; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import com.siwuxie095.service.UserService; // Controller 類 @Controller @RequestMapping("/user") public class UserController { private UserService userService; publicvoid setUserService(UserService userService) { this.userService = userService; } /** * 注意:這裡沒有返回值,僅僅返回了一個 HTTP 狀態碼 200 */ @RequestMapping("/show") @ResponseStatus(HttpStatus.OK) publicvoid show() { System.out.println("UserController 呼叫了 " + userService.show()); } } |
(2)編寫一個Service 類
UserService.java:
package com.siwuxie095.service; // Service 類 public class UserService { public String show(){ return"UserService"; } } |
(3)在Spring 核心配置檔案中進行配置
applicationContext.xml:
(4)在SpringMVC 核心配置檔案中進行配置
dispatcher-servlet.xml:
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" <!-- 啟用註解驅動 --> <mvc:annotation-driven/> <!-- 配置 Controller(必須,即必須進行配置) class 為自定義 Controller 類的完全限定名,這裡通過 Controller 類中的 @RequestMapping 註解來設定訪問路徑 使用純註解時,另一種配置 Controller 的方式:配置掃描包 <context:component-scan base-package="com.siwuxie095.controller" /> --> <beanid="userController"class="com.siwuxie095.controller.UserController"> <propertyname="userService"ref="userService"/> </bean> <!-- 配置 ViewResolver(必須,即必須進行配置) --> <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置檢視解析的字首 prefix 和字尾 suffix: (1)字首:如果在 WebContent 目錄下,則為 /,如果在 WEB-INF 目錄下,則為 /WEB-INF/ (2)字尾:一般為 JSP 檔案,所以為 .jsp 例如:prefix="/",suffix=".jsp",viewname="test",則:"/test.jsp" --> <propertyname="prefix"value="/"/> <propertyname="suffix"value=".jsp"/> </bean> </beans> |
(5)在部署描述檔案中進行配置
web.xml:
<?xmlversion="1.0"encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee" <display-name>TestSpringMVCAndSpring</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 配置 Spring 的監聽器 ContextLoaderListener --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置 Spring 核心配置檔案的位置(路徑) --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 配置 SpringMVC 的核心分發器 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置 SpringMVC 核心配置檔案的位置(路徑) --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <!-- 自動載入:隨 Tomcat 容器啟動,完成初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> |
(6)訪問路徑
http://localhost:8080/工程名/user/show.do
附:
另一種配置方式,即純註解,對以上「測試」做如下修改:
(1)在Controller 類中:
1)在 userService 屬性上加 @Autowired 註解
2)刪掉userService 屬性的 setter 方法
(2)在Service 類中:
在類上加 @Service 註解
(3)在Spring 核心配置檔案中:
1)刪掉 userService 的 Bean
2)加上<context:component-scan base-package="com.siwuxie095.service"/>
(4) 在 SpringMVC 核心配置檔案中:
1)刪掉 userController 的 Bean
2)加上<context:component-scan base-package="com.siwuxie095.controller"/>
或綜合(3)(4):刪掉兩個Bean,在 SpringMVC 核心配置檔案中
加上如下內容:
<context:component-scan base-package="com.siwuxie095"/>
【made by siwuxie095】