自定義application.yml配置項(xiàng)方式
我們現(xiàn)在在springboot中,極其簡(jiǎn)單的配置就可以完成以前很復(fù)雜的配置,application.yml配置很不錯(cuò),閑著沒(méi)事噶,就研究了一下yml如何通過(guò)在yml文件中配置來(lái)自動(dòng)加載一些配置,還有就是好奇他是怎么實(shí)現(xiàn)一點(diǎn)擊就跳轉(zhuǎn)到配置類中的。
1、加入配置依賴及maven插件
<!--配置注釋處理以來(lái)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>2.6.4</version> </dependency> <!--maven 插件--> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </plugins>
2、元注解分析
我們寫一個(gè)外部的配置類,我們還要在配置類上邊加入兩個(gè)元注解 @Component
:組件注解,將該配置文件放到ioc容器中,@ConfigurationProperties
外部配置文件注解,表明這是一個(gè)外部的配置文件。
特別注意的是,我們配置的文件一定要放入到ioc容器中,否則的話@ConfigurationProperties
就會(huì)發(fā)現(xiàn)不了這個(gè)文件,從而報(bào)錯(cuò)。
如下圖,我們點(diǎn)進(jìn)去這個(gè)注解,看他是怎么定義的。
可以看到,下面的兩個(gè)屬性,并且都取了一個(gè)別名,也就是說(shuō),不管我們?cè)谥付╲alue,還是 profix 屬性,我們可以看到,它們都是一個(gè)作用。都是有效的綁定對(duì)象的前綴。
3、配置文件
我們的這個(gè)配置文件就是說(shuō),當(dāng)我們?cè)趛ml中點(diǎn)擊配置屬性的時(shí)候跳轉(zhuǎn)的類。
下面是我寫的一個(gè)實(shí)體類配置,setter和getter方法我就不在下面列舉了。
@Component @ConfigurationProperties(prefix = "user") public class User { /** * Column: id * Type: INT */ private Integer id; /** * Column: username * Type: VARCHAR(12) */ private String username; /** * Column: phone * Type: BIGINT */ private Long phone;
配置好了之后呢,已經(jīng)要maven編譯一遍,不然不知道。
如下圖:
4、測(cè)試能不能用
如下圖可以看到,我們輸入user前綴的時(shí)候,就已經(jīng)將我們的配置項(xiàng)提示出來(lái)了。
說(shuō)明我們的配置很成功。
5、怎么從配置里面取值并加載呢?
這個(gè)也是很簡(jiǎn)單的,因?yàn)槲覀儗⑽覀兊呐渲梅诺搅薸oc容器中了,要實(shí)現(xiàn)自動(dòng)加載取值并實(shí)現(xiàn)某種邏輯。
我們將這個(gè)配置注入到我們需要執(zhí)行的方法或者類中,并將要需要自動(dòng)執(zhí)行的邏輯或者類放入到ioc中。
第一:我們?cè)谂渲弥屑尤胫?/h3>
第二:編寫一個(gè)自動(dòng)配置類
我這里就不做什么很復(fù)雜的邏輯了,就簡(jiǎn)單輸出一下我取到的值,告訴其中的原理就行,要是有其他的邏輯就是按照這個(gè)原理來(lái)的。
@Configuration public class CommonConfig { @Autowired User user; @Bean public void get(){ System.out.println(user.getId()); } }
啟動(dòng)一下,可以看到配置自動(dòng)加載出來(lái)。
并輸出 出來(lái)了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot如何獲取配置文件application.yml中自定義的變量并使用
- Springboot?application.yml配置文件拆分方式
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
- SpringBoot項(xiàng)目中配置application.yml中server.port不生效的問(wèn)題
- Spring Boot配置application.yml及根據(jù)application.yml選擇啟動(dòng)配置的操作方法
- jar命令修改jar包中的application.yml配置文件
相關(guān)文章
IDEA插件(BindED)之查看class文件的十六進(jìn)制
這篇文章主要介紹了IDEA插件(BindED)之查看class文件的十六進(jìn)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12使用Java實(shí)現(xiàn)MySQL數(shù)據(jù)鎖定的策略
在并發(fā)環(huán)境下,多個(gè)線程同時(shí)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行讀寫操作可能會(huì)導(dǎo)致數(shù)據(jù)沖突和不一致的問(wèn)題,為了解決這些并發(fā)沖突,我們可以采用數(shù)據(jù)鎖定策略來(lái)保證數(shù)據(jù)的一致性和完整性,下面將介紹如何使用Java實(shí)現(xiàn)MySQL數(shù)據(jù)鎖定策略,,需要的朋友可以參考下2023-08-08Springboot如何設(shè)置多數(shù)據(jù)源,隨時(shí)切換
這篇文章主要介紹了Springboot如何設(shè)置多數(shù)據(jù)源,隨時(shí)切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04Java格式化輸出詳細(xì)講解(printf、print、println、format等)
Java的格式化輸出等同于String.Format,與C有很大的相似,下面這篇文章主要給大家介紹了關(guān)于Java格式化輸出(printf、print、println、format等)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03springboot添加多數(shù)據(jù)源的方法實(shí)例教程
這篇文章主要給大家介紹了關(guān)于springboot添加多數(shù)據(jù)源方法的相關(guān)資料,在實(shí)際開發(fā)中經(jīng)??赡苡龅皆谝粋€(gè)應(yīng)用中可能要訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)多的情況,需要的朋友可以參考下2023-09-09SpringBoot Security前后端分離登錄驗(yàn)證的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot Security前后端分離登錄驗(yàn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09