【学习笔记】SSM整合

128 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

SSM整合

SSM整合思路

  • Spring + SpringMVC

    • 容器对象管理问题

      • SpringMVC容器对象由DispatcherServlet管理。
      • Spring容器对象,由ContextLoaderListener【监听器】管理。
    • 解决组件扫描冲突问题

      • SpringMVC只扫描Controller层
      • Spring扫描排除Controller层
  • Spring + Mybatis

    • 关于数据源、事务管理的代码冲突问题。

      • 统一交给Spring管理【声明式事务管理】
    • Spring管理Mybatis核心对象

      • SqlSessionFacctory
      • Mapper代理对象

SSM整合步骤

  • Spring + SpringMVC

    • 导入jar包

      <!--spring-webmvc-->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.3.1</version>
      </dependency><!-- 导入thymeleaf与spring5的整合包 -->
      <dependency>
          <groupId>org.thymeleaf</groupId>
          <artifactId>thymeleaf-spring5</artifactId>
          <version>3.0.12.RELEASE</version>
      </dependency><!--servlet-api-->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>
      
    • 编写配置文件

      • web.xml

        • 注册CharacterEmcodingFilter【解决请求乱码】
        • 注册HiddenHttpMethodFilter【支持PUT&DELETE提交方式,REST风格】
        • 注册DispatcherServlet【管理SpringMVC容器对象】
        • 注册contextConfigLocation【上下文参数,设置spring.xml配置文件路径】
        • 注册ContextLoaderListener【管理spring容器对象】
      • springmvc.xml

        • 开启组件扫描,只扫描Controller层【扫描自己写的注解,可以让程序识别】
        • 装配视图解析器ThymeleafViewResolver【设置视图前缀&后缀等】
        • 装配视图控制器view-controller【为指定URL映射视图】
        • 装配default-servlet-handler【解决重定向的静态资源加载】
        • 装配annotation-driven【解决view-controller、default-servlet-handler、jackson装配消息转换器等23+问题】
      • spring.xml

        • 开启组件扫描,排除Controller层。
  • Spring + Mybatis

    • 导入jar包

      • spring的jar包

        <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aspects</artifactId>
                    <version>5.3.1</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-orm</artifactId>
                    <version>5.3.1</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>5.3.1</version>
                </dependency>
      • mybatis的jar包

        <!--导入druid的jar包-->
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                    <version>1.1.10</version>
                </dependency>
        ​
                <!--导入mysql的jar包,注意版本-->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.28</version>
                </dependency><!--导入MyBatis的jar包-->
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>3.5.6</version>
                </dependency><!-- pagehelper -->
                <dependency>
                    <groupId>com.github.pagehelper</groupId>
                    <artifactId>pagehelper</artifactId>
                    <version>5.2.0</version>
                </dependency>
        
      • spring与mybatis整合jar包

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
    • 配置文件

      • spring.xml

        • 开启组件扫描,排除Controller层。
        • 加载外部属性文件
        • 装配数据源
        • 装配事务管理器
        • 开启声明式事务管理注解支持
        • 装配SqlSessionFactoryBean【管理SqlSessionFactory】
        • 装配MapperScannerConfigurer【管理Mapper代理对象】
      • mybatis-config.xml【核心配置文件】

        • 设置别名
        • 开启驼峰式命名映射
        • 设置分页插件
      • XXXMapping.xml【映射文件】