整合SpringMVC框架和Spring框架
-------------------------siwuxie095
整合 SpringMVC 框架和 Spring 框架
1、导入相关 jar 包(共 17 个)
(1)导入 Spring 的核心 jar 包和日志相关的 jar 包(6 个)
Commons Logging 下载链接:
http://commons.apache.org/proper/commons-logging/download_logging.cgi
LOG4J 下载链接:
https://www.apache.org/dist/logging/log4j/
(2)导入 Spring 的 AOP 开发的 jar 包(4 个)
AOP Alliance 下载链接:
http://mvnrepository.com/artifact/aopalliance/aopalliance
AspectJ Weaver 下载链接:
http://mvnrepository.com/artifact/org.aspectj/aspectjweaver
(3)导入 Spring 的 JDBC 开发的 jar 包(2 个)
(4)导入 Spring 整合 Web 项目的 jar 包(1 个)
(5)导入 SpringMVC 的 jar 包(1 个)
(6)导入 SpringMVC 中使用 JSON 所需的 jar 包(3 个)
Jackson Core 下载链接:
http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/
Jackson Annotations 下载链接:
http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/
Jackson Databind 下载链接:
http://repo1.maven.org/maven2/com/fasterxml/jackson/core/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;
public void setUserService(UserService userService) { this.userService = userService; }
/** * 注意:这里没有返回值,仅仅返回了一个 HTTP 状态码 200 */ @RequestMapping("/show") @ResponseStatus(HttpStatus.OK) public void 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:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 配置 Service 对象 --> <bean id="userService" class="com.siwuxie095.service.UserService"/>
</beans> |
(4)在 SpringMVC 核心配置文件中进行配置
dispatcher-servlet.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 启用注解驱动 --> <mvc:annotation-driven/>
<!-- 配置 Controller(必须,即 必须进行配置)
class 为自定义 Controller 类的完全限定名,这里通过 Controller 类中的 @RequestMapping 注解来设置访问路径
使用纯注解时,另一种配置 Controller 的方式:配置扫描包 <context:component-scan base-package="com.siwuxie095.controller" /> --> <bean id="userController" class="com.siwuxie095.controller.UserController"> <property name="userService" ref="userService"/> </bean>
<!-- 配置 ViewResolver(必须,即 必须进行配置) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置视图解析的前缀 prefix 和后缀 suffix: (1)前缀:如果在 WebContent 目录下,则为 /,如果在 WEB-INF 目录下,则为 /WEB-INF/ (2)后缀:一般为 JSP 文件,所以为 .jsp
例如:prefix="/",suffix=".jsp",viewname="test",则:"/test.jsp" --> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean>
</beans> |
(5)在部署描述文件中进行配置
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <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】
posted on 2018-03-06 13:10 siwuxie095 阅读(288) 评论(0) 编辑 收藏 举报