Spring Boot-SSM整合

2022-04-27  本文已影响0人  石头耳东

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

零、本文纲要

  1. 基础依赖
  2. Spring容器
  3. SpringMVC容器
  4. Web入口
  5. Test测试
  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容器

DataSource
PlatformTransactionManager、setDataSource
driver、url、username、password

SqlSessionFactoryBean、setDataSource、setTypeAliasesPackage
MapperScannerConfigurer、setBasePackage

@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接口、@Component
preHandle、postHandle、afterCompletion

@RestControllerAdvice
@ExceptionHandler(Exception.class)

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

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

3. Web入口

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整合的全部内容,感谢阅读。

上一篇下一篇

猜你喜欢

热点阅读