美文网首页
Spring Boot-SSM整合

Spring Boot-SSM整合

作者: 石头耳东 | 来源:发表于2022-04-27 09:54 被阅读0次

    前置文章:
    一、Spring-SSM整合

    零、本文纲要

    • 一、原生Spring开发SSM
    1. 基础依赖
    2. Spring容器
    3. SpringMVC容器
    4. Web入口
    5. Test测试
    • 二、Spring Boot开发SSM
    1. 基础依赖
    2. 配置文件
    3. 配置扫描,自动代理
    4. Spring Boot启动类
    5. 测试
      补充:拦截器

    一、原生Spring开发SSM

    0. 基础依赖

    ① Servlet3.0:javax.servlet-api
    ② Spring、SpringMVC、JSON:spring-webmvc、jackson-databind
    ③ 数据库操作(事务):spring-jdbc、mybatis、mybatis-spring、mysql-connector-java、druid
    ④ 测试:spring-test、junit

    1. Spring容器

    • ① JdbcConfig & jdbc.properties

    DataSource
    PlatformTransactionManager、setDataSource
    driver、url、username、password

    • ② MyBatisConfig

    SqlSessionFactoryBean、setDataSource、setTypeAliasesPackage
    MapperScannerConfigurer、setBasePackage

    • ③ SpringConfig
    @Configuration
    @ComponentScan({"com.stone.service", "com.stone.dao"}) // 管理Bean
    @PropertySource({"classpath:jdbc.properties"}) // 关联配置文件
    @Import({JdbcConfig.class, MyBatisConfig.class}) // 其他配置管理
    @EnableTransactionManagement // 开启事务支持
    public class SpringConfig {
    }
    

    2. SpringMVC容器

    • ① HandlerInterceptor(拦截器)

    实现HandlerInterceptor接口、@Component
    preHandle、postHandle、afterCompletion

    • ② @RestControllerAdvice(统一异常处理)

    @RestControllerAdvice
    @ExceptionHandler(Exception.class)

    • ③ WebMvcConfigurationSupport

    继承WebMvcConfigurationSupport抽象类、@Configuration
    addResourceHandlers、addResourceHandler+addResourceLocations静态资源映射
    addInterceptors、addInterceptor+addPathPatterns请求路径拦截

    • ④ SpringMvcConfig
    @Configuration
    @ComponentScan({"com.stone.controller", "com.stone.config"})
    @EnableWebMvc // 开启MVC功能支持,如JSON解析
    public class SpringMvcConfig {
    }
    

    3. Web入口

    • ① ServletConfig

    AbstractDispatcherServletInitializer(了解构成)
    AbstractAnnotationConfigDispatcherServletInitializer(简化书写)
    getServletFilters、CharacterEncodingFilter、setEncoding("UTF-8")

    4. Test测试

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)

    二、Spring Boot开发SSM

    0. 基础依赖

    ① web:spring-boot-starter-web
    ② 数据库:mybatis-spring-boot-starter、mysql-connector-java、druid
    ③ test:spring-boot-starter-test

    1. 配置文件

    较之Spring的SSM整理,config相关的内容均被移除。只需要在配置文件配置我们的数据源即可,如下:

    server:
      port: 80
    
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/ssm_db #?servierTimezone=UTC
        username: root
        password: root
    

    SpringBoot 版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区
    jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC,或在MySQL数据库端配置时区解决此问题

    2. 配置扫描,自动代理

    在Dao接口/Mapper接口上添加@Mapper注解

    3. Spring Boot启动类

    @SpringBootApplication
    public class SsmApplication {
        public static void main(String[] args) {
            SpringApplication.run(SsmApplication.class, args);
        }
    }
    

    4. 测试

    @SpringBootTest
    public class BookServiceTest {
        ... ...
    }
    

    不难看出Spring的SSM虽然较于传统的开发省略了很多内容,但是Spring Boot的自动配置帮我们把重复的工作承包之后,项目主体更为简洁。

    补充:拦截器

    如果还需配置拦截器:

    ① 编写实现HandlerInterceptor接口的拦截器类。
    ② 编写配置类继承WebMvcConfigurationSupport抽象类、或者实现WebMvcConfigurer接口完成注册即可。

    三、结尾

    以上即为Spring Boot-SSM整合的全部内容,感谢阅读。

    相关文章

      网友评论

          本文标题:Spring Boot-SSM整合

          本文链接:https://www.haomeiwen.com/subject/gomkyrtx.html