自定義application.yml配置項方式
我們現(xiàn)在在springboot中,極其簡單的配置就可以完成以前很復雜的配置,application.yml配置很不錯,閑著沒事噶,就研究了一下yml如何通過在yml文件中配置來自動加載一些配置,還有就是好奇他是怎么實現(xiàn)一點擊就跳轉到配置類中的。
1、加入配置依賴及maven插件
<!--配置注釋處理以來-->
<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、元注解分析
我們寫一個外部的配置類,我們還要在配置類上邊加入兩個元注解 @Component :組件注解,將該配置文件放到ioc容器中,@ConfigurationProperties 外部配置文件注解,表明這是一個外部的配置文件。
特別注意的是,我們配置的文件一定要放入到ioc容器中,否則的話@ConfigurationProperties就會發(fā)現(xiàn)不了這個文件,從而報錯。
如下圖,我們點進去這個注解,看他是怎么定義的。
可以看到,下面的兩個屬性,并且都取了一個別名,也就是說,不管我們在指定value,還是 profix 屬性,我們可以看到,它們都是一個作用。都是有效的綁定對象的前綴。

3、配置文件
我們的這個配置文件就是說,當我們在yml中點擊配置屬性的時候跳轉的類。
下面是我寫的一個實體類配置,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;
配置好了之后呢,已經要maven編譯一遍,不然不知道。
如下圖:

4、測試能不能用
如下圖可以看到,我們輸入user前綴的時候,就已經將我們的配置項提示出來了。
說明我們的配置很成功。

5、怎么從配置里面取值并加載呢?
這個也是很簡單的,因為我們將我們的配置放到了ioc容器中了,要實現(xiàn)自動加載取值并實現(xiàn)某種邏輯。
我們將這個配置注入到我們需要執(zhí)行的方法或者類中,并將要需要自動執(zhí)行的邏輯或者類放入到ioc中。
第一:我們在配置中加入值

第二:編寫一個自動配置類
我這里就不做什么很復雜的邏輯了,就簡單輸出一下我取到的值,告訴其中的原理就行,要是有其他的邏輯就是按照這個原理來的。
@Configuration
public class CommonConfig {
@Autowired
User user;
@Bean
public void get(){
System.out.println(user.getId());
}
}
啟動一下,可以看到配置自動加載出來。
并輸出 出來了。

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring?Boot?項目與JDK、Mybatis版本兼容對應關系表及問題記錄
本文總結SpringBoot與JDK、MyBatis、SpringCloud及SpringCloudAlibaba的版本兼容性,提供對應關系表和注意事項,建議使用SpringBoot的依賴管理,匹配官方推薦版本,避免沖突,確保穩(wěn)定性,感興趣的朋友跟隨小編一起看看吧2025-07-07
jdk17+springboot使用webservice的踩坑實戰(zhàn)記錄
這篇文章主要給大家介紹了關于jdk17+springboot使用webservice踩坑的相關資料,網上很多教程是基于jdk8的,所以很多在17上面跑不起來,折騰兩天,直接給答案,需要的朋友可以參考下2024-01-01
springMVC的RequestMapping請求不到路徑的解決
這篇文章主要介紹了springMVC的RequestMapping請求不到路徑的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

