SSM整合总结之整合Spring和SpringMVC

前言

最近几个项目已经迁移到SpringBoot,SpringBoot自动装配可以简化很多配置,但是正因为它简化成了傻瓜式快速开发,导致开发过程中很多东西都是一知半解。所以最近把搭建SSM的过程总结一下。

整合 Spring 和 SpringMVC

  1. 添加SpringMVC依赖(SpringMVC包含了Spring依赖)
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>indi.tracine</groupId>
  <artifactId>ss</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <spring.version>4.3.11.RELEASE</spring.version>
    <jackson.version>2.7.0</jackson.version>
  </properties>

  <dependencies>
    <!--
      spring-mvc已经自动添加了以下几个依赖,所以后面不需要再次引入他们
      spring-core:Spring框架基本的核心工具
      spring-beans:管理bean(IOC容器必备)
      spring-aop:面向切面编程的核心依赖
      spring-context:spring的context上下文即IoC容器
      spring-web:Web开发时所需的核心类
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 控制器返回JSON对象或其他地方需要的JSON转换依赖 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <!--单元测试-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>${project.artifactId}</finalName>
  </build>
</project>

  1. 新增 spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

  <!-- 自动扫描的包名 -->
  <context:component-scan base-package="indi.tracine.ssm.controller"/>
  <mvc:default-servlet-handler/>

  <mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes" value="text/plain;charset=UTF-8"/>
      </bean>
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="objectMapper" ref="objectMapperUtils"/>
      </bean>
    </mvc:message-converters>
  </mvc:annotation-driven>

  <!-- 自定义的JSON ObjectMapper -->
  <bean id="objectMapperUtils" class="indi.tracine.ssm.utils.ObjectMapperUtils"/>

</beans>
  1. 在 web.xml 配置 DispatcherServlet
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>ss</display-name>
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:config/spring-mvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

  1. 在配置的扫描包下新增一个控制器
@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public Map<String, String> list() {
        Map<String, String> map = new HashMap<>();
        map.put("username", "admin");
        map.put("password", "admin@123");
        map.put("age", "18");
        return map;
    }

}

完整代码下载链接

链接:https://pan.baidu.com/s/1vcOvK0C2ksagVjJMrjOdsQ
提取码:idt8

posted @ 2020-04-19 23:23  Tracine0513  阅读(164)  评论(0编辑  收藏  举报