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

  • 相关阅读:
    ubuntu安装Elasticsearch
    PHP如何计算脚本执行时间
    MVC+EF中返回JSON的性能和安全问题
    博客园最新的一个模板样式有问题
    Entity Framework 批量插入很慢吗?我自己测试下
    用 Raphaël 绘制中国地图 + 显示数据
    博客园的手机版(非官方) MVC+jQuery.Mobile
    BitCovert,与移位,加法性能比较
    探讨微软ASP.NET AJAX控件开发技术(客户端)
    (十三)树【C++刷题】
  • 原文地址:https://www.cnblogs.com/tracine0513/p/12735014.html
Copyright © 2011-2022 走看看