优点
1单独的Web 服务器需要。这意味着你不再需要启动Tomcat
2需要更少的配置,只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法
3集成了大量常用的第三方库的配置, spring-boot-starter-web添加了对构建web应用所需的所有依赖。
4能够充分利用Spring框架提供的各种功能,如依赖注入、AOP等。
5Spring 最重要的特征是依赖注入控制反转 SpringBoot解决Spring 和 Spring MVC需要配置大量的参数
缺点
过度自动配置:
内存消耗: 某些情况下,由于自动配置的特性,Spring Boot应用可能会消耗较多的内存。
版本兼容性:
依赖太多
缺少服务的注册和发现解决方案
启动注解核心注解 @SpringBootApplication
@SpringBootConfiguration 注解,继承@Configuration注解,主要用于加载配置文件
@EnableAutoConfiguration 注解,开启自动配置功能
@ComponentScan 注解, 自动扫描路径下的所有@Component标注的类,包括@Service、@Repository、@Controller
SpringBoot打包用命令或者放到容器中,用 Maven/ Gradle 插件运行,直接执行 main 方法运行
SpringBoot 支持 log4j、logback 作为日志框架。
Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,
Starters 默认启动器使用 Logback日志框架
SpringBoot多配置切换的配置方法
application-dev.properties,
application-prod.properties,
在application.properties中指定:spring.profiles.active=dev
@Target 说明了Annotation被修饰的范围,@Retention 即描述注解的生命周期
SpringBoot自动状态spring.factories Spring Boot 会自动扫描所有 Jar 包类路径下 META-INF/spring.factories 文件,并读取其中的内容,
进行实 化,@EnableAutoConfiguration 给容器导入 META-INF/spring.factories 里定义的自动配置类。 每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能。
springboot生命周期
1、初始化环境变量
2、初始化环境变量完成
3、应用启动
4、应用已启动完成
5、应用刷新
6、应用停止
7、应用关闭
springboot启动做了什么
配置属性
获取监听器,发布应用开始启动事件
初始化输入参数
配置环境,输出banner
创建上下文 预处理上下文 刷新上下文 再刷新上下文 发布应用已经启动事件 发布应用启动完成事件