前置文章:
一、Spring-SSM整合
零、本文纲要
- 一、原生Spring开发SSM
- 基础依赖
- Spring容器
- SpringMVC容器
- Web入口
- Test测试
- 二、Spring Boot开发SSM
- 基础依赖
- 配置文件
- 配置扫描,自动代理
- Spring Boot启动类
- 测试
补充:拦截器
一、原生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整合的全部内容,感谢阅读。
网友评论