SpringBoot-自動配置


使用 SpringBoot 之后,讓一個整合了 SpringMVC 的 WEB 工程開發變得非常簡單,那些繁雜的配置都消失不見了,這是如何做到的?

查看 main 方法的啟動類

注解:@SpringBootApplication,run 方法:SpringApplication.run()

@SpringBootApplication

查看@SpringBootApplication源碼,如下圖所示:

在源碼當中有3個比較重點的注解, 我上圖已經標記出來了

@SpringBootConfiguration

查看 @SpringBootConfiguration 源碼

在這個注解上面,又有一個 @Configuration 注解,這個注解的作用就是聲明當前類是一個 配置類,然后 Spring 會自動掃描到添加了 @Configuration 的類,讀取其中的配置信息,而 @SpringBootConfiguration 是用來聲明當前類是 SpringBoot 應用的配置類,項目中只能有一個。所以一般我們無需自己添加。

@EnableAutoConfiguration

開啟自動配置,告訴 SpringBoot 基於所添加的依賴,去 猜測 你想要如何配置 Spring。比如我們引入了 spring-boot-starter-web,而這個啟動器中幫我們添加了 tomcat、SpringMVC 的依賴, 此時自動配置就知道你是要開發一個 web 應用,所以就幫你完成了 web 及 SpringMVC 的默認配置了!SpringBoot 內部對大量的第三方庫或 Spring 內部庫進行了默認配置,這些配置是否生效,取決於我們是否引入了對應庫所需的依賴,如果有那么默認配置就會生效,我們使用 SpringBoot 構建一個項目,只需要引入對應框架所需的依賴,配置就可以交給 SpringBoot 處理了。

@ComponentScan

配置組件掃描的指令,提供了類似與 <context:component-scan> 標簽的作用,通過 basePackageClasses 或者 basePackages 屬性來指定要掃描的包。如果沒有指定這些屬性,那么將從聲明這個注解的類所在的包開始掃描包及子包。而我們的 @SpringBootApplication 注解聲明的類就是 main 函數所在的啟動類,因此掃描的包是該類所在包及其子包。因此,一般啟動類會放在一個比較前的包目錄中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM