一、Spring Boot基礎(chǔ)
Spring Boot優(yōu)點(diǎn):
1.快速構(gòu)建項(xiàng)目趟脂。
2.對主流開發(fā)框架的無配置繼承泰讽。
3.項(xiàng)目可獨(dú)立運(yùn)行,無須外部依賴Servlet容器昔期。
4.提供運(yùn)行是的應(yīng)用監(jiān)控已卸。
5.極大地提高了開發(fā)、部署效率硼一。
6.與云計(jì)算天然集成累澡。
二、Spring Boot核心
1.基本配置
1)入口類和@SpringBootApplication
@SpringBootApplication源碼如下般贼,可以看出@SpringBootApplication注解主要組合了@Configuration愧哟、@EnableAutoConfiguration、@ComponentScan哼蛆。值得說明一下@EnableAutoConfiguration的作用蕊梧,讓Spring Boot根據(jù)路徑中的jar包依賴為當(dāng)前項(xiàng)目進(jìn)行自動配置。
Spring Boot會自動掃描@SpringBootApplication所在類的同級包以及下級包的Bean腮介。建議入口類放置的位置在groupId+arctifactID組合的包名下肥矢。
如果想要關(guān)閉特定的自動配置應(yīng)該使用@SpringBootApplication注解的exclude參數(shù),如:@SpringBootApplication(exclude={DataSourceAtutoConfiguration.class})叠洗。
2)定制Banner
3)Spring Boot的配置文件
4)使用xml配置
雖然Spring Boot提倡零配置甘改,即無xml配置旅东,但在實(shí)際開發(fā)中還是會有特殊情況的,我們就需要通過Spring提供的@ImportResource來加載xml配置十艾,如:@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})
2.外部配置
1)命令行參數(shù)配置
a.Spring Boot可以是基于jar包運(yùn)行的抵代,打成jar包的程序可以通過java -jar xx.jar命令運(yùn)行。
b.可以通過java -jar xx.jar --server.port=9090修改Tomcat端口忘嫉。
2)常規(guī)屬性配置
Spring:注入properties文件里的值荤牍,通過@PropertySource指明properties文件的位置,然后通過@Value注入值庆冕。
Spring Boot:只需要在application.properties定義屬性参淫,直接使用@Value注入即可。
3)類型安全的配置(基于properties)
在實(shí)際開發(fā)中使用@Value注入每個配置有些麻煩愧杯,通過@ConfigurationProperties將properties屬性和一個Bean及其屬性關(guān)聯(lián)。
3.日志配置
Spring Boot支持Java Util Logging鞋既、Log4J力九、Log4J2、Logback作為日志框架邑闺,無論使用那種日志框架跌前,Spring Boot都已為該框架配置好了控制臺輸出及文件輸出。默認(rèn)情況下陡舅,Spring Boot使用Logback作為日志框架抵乓。
4.Profile配置
Profile是Spring用來針對不同的環(huán)境對不同的配置提供支持,全局Profile配置使用application-{profile}.properties靶衍。
5.Spring Boot運(yùn)行原理
1.自動配置
Spring Boot自動配置的源碼在spring-boot-autoconfigure-1.3.0.x.jar中灾炭。
查看項(xiàng)目中已啟用和未啟用的自動配置的報告:
a)運(yùn)行jar時增加--debug參數(shù),即:java -jar xx.jar --debug
b)在application.properties中設(shè)置屬性颅眶,即:debug=true
c)在STS中設(shè)置
2.運(yùn)作原理