优点
- 独立运行,内嵌各种组件,不需要打成war包,jar包就能独立运行
- 简化配置 spring-boot-starter-web启动器自动依赖其他组件,简化maven配置
- 自动配置bean
- 配置过程无代码生成,无需xml文件
- 避免导入maven版本冲突
- 可做监控
配置文件格式
- properties
- yml
- yaml
核心注解
- @SpringBootConfiguration:实现配置文件
- @EnableAutoConfiguration:打开自动配置功能
- @ ComponentScan:组件扫描
开启springBoot
- 继承spring-boot-starter-parent
- 导入spring-boot-dependencies
自动化配置
- 自动加载大量的自动配置类,只需要读取配置文件中的属性即可
启动流程
- 启动Application中的main方法
- 从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值
- 将这些值作为自动配置类导入容器,自动配置类生效
- 调用 SpringApplication.run,该方法是run方法
- 构造了一个SpringApplication对象,从指定的主要来源加载bean
- 运行spring应用程序刷新并创建新的ApplicationContext
- run方法
日志框架
- Java Util Logging
- Log4j2
- Lockback
starter
- @SpringBootApplication注解会自动去maven中读取每个starter中的spring.factories文件
- 将文件里的bean加载到springcontext
前端模板
- thymeleaf,freemarker,jsp
运行方式
- 打包用命令运行
- 用maven插件运行
- 直接执行main方法
热部署
- spring loaded
- spring-boot-devtools
事务的使用
- EnableTransactionManagement开启事务
- 在service方法添加Transaction注解
自动配置原理
- 从META_INF/Spring.factories加载可能用到的自动配置类
- 去重,排除exclude
- 过滤,返回自动配置类
加载顺序
- properties文件
- yaml文件
- 系统环境变量
- 命令行参数
安全性
- spring-boot-starter-security依赖项
- spring-boot-starter-parent用于打包
打包
- maven中的package
- 打包成的jar可直接运行,但是不能被依赖
swagger可以实现接口文档
- maven中的package
- 打包成的jar可直接运行,但是不能被依赖