一、Spring Boot基础
Spring Boot优点:
1.快速构建项目。
2.对主流开发框架的无配置继承。
3.项目可独立运行,无须外部依赖Servlet容器。
4.提供运行是的应用监控。
5.极大地提高了开发、部署效率。
6.与云计算天然集成。
二、Spring Boot核心
1.基本配置
1)入口类和@SpringBootApplication
@SpringBootApplication源码如下,可以看出@SpringBootApplication注解主要组合了@Configuration、@EnableAutoConfiguration、@ComponentScan。值得说明一下@EnableAutoConfiguration的作用,让Spring Boot根据路径中的jar包依赖为当前项目进行自动配置。
Spring Boot会自动扫描@SpringBootApplication所在类的同级包以及下级包的Bean。建议入口类放置的位置在groupId+arctifactID组合的包名下。
如果想要关闭特定的自动配置应该使用@SpringBootApplication注解的exclude参数,如:@SpringBootApplication(exclude={DataSourceAtutoConfiguration.class})。
2)定制Banner
3)Spring Boot的配置文件
4)使用xml配置
虽然Spring Boot提倡零配置,即无xml配置,但在实际开发中还是会有特殊情况的,我们就需要通过Spring提供的@ImportResource来加载xml配置,如:@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})
2.外部配置
1)命令行参数配置
a.Spring Boot可以是基于jar包运行的,打成jar包的程序可以通过java -jar xx.jar命令运行。
b.可以通过java -jar xx.jar --server.port=9090修改Tomcat端口。
2)常规属性配置
Spring:注入properties文件里的值,通过@PropertySource指明properties文件的位置,然后通过@Value注入值。
Spring Boot:只需要在application.properties定义属性,直接使用@Value注入即可。
3)类型安全的配置(基于properties)
在实际开发中使用@Value注入每个配置有些麻烦,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联。
3.日志配置
Spring Boot支持Java Util Logging、Log4J、Log4J2、Logback作为日志框架,无论使用那种日志框架,Spring Boot都已为该框架配置好了控制台输出及文件输出。默认情况下,Spring Boot使用Logback作为日志框架。
4.Profile配置
Profile是Spring用来针对不同的环境对不同的配置提供支持,全局Profile配置使用application-{profile}.properties。
5.Spring Boot运行原理
1.自动配置
Spring Boot自动配置的源码在spring-boot-autoconfigure-1.3.0.x.jar中。
查看项目中已启用和未启用的自动配置的报告:
a)运行jar时增加--debug参数,即:java -jar xx.jar --debug
b)在application.properties中设置属性,即:debug=true
c)在STS中设置
2.运作原理