zoukankan      html  css  js  c++  java
  • 整合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】

  • 相关阅读:
    [BZOJ2431] [HAOI2009]逆序对数列
    [Luogu2323] [HNOI2006]公路修建问题
    [Luogu2455] [SDOI2006]线性方程组
    [BZOJ3550] [Sdoi2014]数数
    [Noip2017] 列队
    [Luogu2824] [HEOI2016/TJOI2016]排序
    [BZOJ1060] [ZJOI2007]时态同步
    P1036 选数 题解
    快速幂取模算法详解
    同余定理及其应用
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/8513794.html
Copyright © 2011-2022 走看看