溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Springboot中注解及配置文件加載順序是怎樣的

發(fā)布時(shí)間:2021-11-15 09:14:29 來源:億速云 閱讀:450 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Springboot中注解及配置文件加載順序是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Springboot常用注解及底層實(shí)現(xiàn)

1、@SpringBootApplication:這個(gè)注解標(biāo)識(shí)了一個(gè)SpringBoot工程,她實(shí)際上是另外三個(gè)注解的組合,分別是:

Springboot中注解及配置文件加載順序是怎樣的

@SpringBootConfiguration:源碼可以看到,這個(gè)注解除了元注解外,實(shí)際就只有一個(gè)@Configuration,把該類變成一個(gè)配置類,表示啟動(dòng)類也是一個(gè)配置類;

Springboot中注解及配置文件加載順序是怎樣的

@EnableAutoConfiguration:是開啟自動(dòng)配置的功能,向Spring容器中導(dǎo)入了一個(gè)Selector,用來加載ClassPath下SpringFactories中所定義的自動(dòng)配置類,將這些自動(dòng)加載為配置Bean;

Springboot中注解及配置文件加載順序是怎樣的

由@AutoConfigurationPackage和@Import組成,前者表示讓包中的類能夠被自動(dòng)掃描到spring容器中;使用import是往Spring容器中導(dǎo)入一個(gè)組件,將主配置類的所在包及子包所有組件掃描加載到Spring容器;

Springboot在啟動(dòng)的時(shí)候,從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動(dòng)配置類導(dǎo)入到容器中,自動(dòng)配置類就生效,幫我們進(jìn)行自動(dòng)配置工作。以前需要我們自己配置的東西,自動(dòng)配置類都幫我們完成了。

@ComponentScan:標(biāo)識(shí)掃描路徑,因?yàn)槟J(rèn)是沒有配置實(shí)際掃描路徑的,所以SpringBoot掃描的路徑是啟動(dòng)類所在的當(dāng)前目錄;

2、@Bean注解:用來定義Bean,類似于XML中的<bean>標(biāo)簽,Spring在啟動(dòng)時(shí),會(huì)對(duì)加了@Bean注解的方法進(jìn)行解析,將方法的名字作為beanName,并通過執(zhí)行方法得到bean對(duì)象;

3、@Controller、@Service、@ResponseBody、@Autowired

Springboot中配置文件的加載順序

優(yōu)先級(jí)從高到低,高優(yōu)先級(jí)的配置覆蓋低優(yōu)先級(jí)的配置,所有配置會(huì)形成互補(bǔ)配置;

1、命令行參數(shù)。所有的配置都可以在啟動(dòng)命令行上進(jìn)行指定;

2、Java系統(tǒng)屬性(System.getProperties)

3、操作系統(tǒng)環(huán)境變量;

4、jar包外部的application-{profile}.properties或.yml配置文件;可以通過制定配置文件的方式:

--spring.config.location=/bdl/application.properties

5、jar包內(nèi)部的配置文件;

6、@Configuration注解類上的@PropertySource

關(guān)于Springboot中注解及配置文件加載順序是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI