SpringBoot
springboot是spring家族的脚手架/整合框架
一、怎么集成的
springboot本质是一个容器+自动配置中心,把spring家族的常见组合都"预配好了",用starter包来集成
Spring MVC(Web 层)
- 依赖:
spring-boot-starter-web - 自动配置内容:
- 注册
DispatcherServlet、HandlerMapping、HandlerAdapter - 内置 JSON 序列化(默认 Jackson)
- 静态资源映射(
/static,/public,/resources) - 内置异常处理机制
@ControllerAdvice
- 注册
Spring Data JPA / JDBC(数据访问层)
- 依赖:
spring-boot-starter-data-jpa/spring-boot-starter-jdbc - 自动配置内容:
- 自动创建
DataSource - 扫描
@Repository - 提供
EntityManager或JdbcTemplate - 根据
application.yml配置数据库连接和方言
- 自动创建
Spring Security(权限认证)
- 依赖:
spring-boot-starter-security - 自动配置内容:
- 默认所有请求需要认证
- 自动注册
UserDetailsService(默认内存用户) - 自动配置 CSRF、防火墙过滤器链
Spring AOP
- 依赖:
spring-boot-starter-aop - 自动配置
@EnableAspectJAutoProxy - 自动支持
@Aspect切面
Spring Cache
- 依赖:
spring-boot-starter-cache - 自动启用
@EnableCaching - 支持 Redis、EhCache 等 CacheManager
Spring Mail、Spring Batch、Spring AMQP、Spring Kafka
- 都有对应 starter,比如:
spring-boot-starter-mail→ JavaMailSenderspring-boot-starter-amqp→ RabbitMQspring-boot-starter-kafka→ KafkaTemplate
二、相比ssm的优势
1. 配置量差异
- SSM:
- 需要写一堆 XML(Spring 配置、MyBatis 映射、事务管理、Spring MVC DispatcherServlet)
- 还要手动注册 Bean、Mapper 扫描器等
- Spring Boot:
- 配置文件只需
application.yml - MyBatis 直接用
spring-boot-starter-mybatis,无需额外 XML(Mapper 接口 + 注解/简化 XML 即可)
- 配置文件只需
2. 启动和部署
- SSM: 必须依赖外部 Tomcat/Jetty,打 war 包,放到容器里跑。
- Spring Boot: 内嵌 Tomcat(或 Jetty/Undertow),直接
java -jar运行。
3. 生态与扩展
- SSM: 基本就是 CRUD,后续要引入消息队列、缓存、定时任务等,需要额外配置。
- Spring Boot: starter 齐全,一行依赖即可集成 Kafka、Redis、Quartz、ElasticSearch。
4. 社区和标准化
- Spring Boot 已经成为 Spring 官方推荐的标准,SSM 已逐渐淘汰(大公司新项目基本不再用 SSM)。
三、springboot自动配置核心原理
1. 核心注解
@SpringBootApplication=@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan@EnableAutoConfiguration→ 读取META-INF/spring.factories中的配置类
2. 条件装配(@Conditional)
-
例如:
@Configuration @ConditionalOnClass(DataSource.class) public class DataSourceAutoConfiguration { ... } -
如果项目里有
DataSource类,就自动创建数据库连接池 Bean。
3. 外部配置绑定
-
@ConfigurationProperties把application.yml的配置绑定到 Bean -
如:
spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: 123456自动绑定到
DataSourceProperties。
4. Starter + AutoConfiguration 配合
- 你引入
spring-boot-starter-web→ Boot 自动加载 WebMvcAutoConfiguration → 自动装配 SpringMVC。
四、自动开始了什么
1. 内嵌容器
- 默认启动 Tomcat,扫描并注册 Servlet、Filter、Listener。
2. 常用 Bean 注册
- MVC 组件、事务管理器、异常处理、消息转换器、数据源、缓存管理器。
3. 配置中心
- 外部化配置,支持 yml、properties、环境变量。
4. 健康检查 & 监控(Actuator)
- 一行依赖就能查看
/actuator/health、/metrics。