Springboot?application.yml配置文件拆分方式
application.yml配置文件拆分方式
盡管使用Springboot減少了很多配置,但還是有一些配置需要大量的手工操作,而YML格式的配置文件在配置較少時,比較直觀,但是在配置較多時,就不是很好了,因此拆分配置文件就很有必要了,拆分配置文件也比較簡單。
# application.yml 文件
spring:
profiles:
include:
- sharding
- kanyun主配置文件中 通過 spring.profiles.include來引入其他配置文件

# application-sharding.yml
spring:
shardingsphere:
datasource:
names: dms
dms:
type: com.zaxxer.hikari.HikariDataSource
jdbc-url: jdbc:mysql://localhost:3306/rds_mysql_1352zk
username: root
password: root
sharding:
tables:
t_user:
actual-data-nodes: dms.t_user_$->{1..2}
table-strategy:
inline:
sharding-column: id
algorithm-expression: t_user_$->{id % 2 + 1}
key-generator:
column: id
type: SIMPLE
enabled: true
props:
sql:
show: true# application-kanyun.properties banner.location=banner.txt #可以自定義輸出信息的位置 banner.charset=utf-8 #指定編碼格式 spring.main.banner-mode=console
這里需要注意的是,如果在主配置文件application.yml中include了錯誤的文件名,也不會報找不到文件的錯,除非關(guān)鍵配置信息找不到會報錯。
需要注意的是,include不但可以引入YML文件,還可以引入properties文件,配置也是生效的。
這樣就可以自定義配置文件的格式,畢竟有些配置用properties文件更方便一些。
application.yml配置文件寫法
一、存放位置分類
- 1.當(dāng)前項目根目錄下的config目錄下
- 2.當(dāng)前項目的根目錄下
- 3.resources目錄下的config目錄下
- 4.resources目錄下
按照這上面的順序,4個配置文件的優(yōu)先級依次降低。

二、自定義存放位置和自定義命名
自定義存放位置和自定義配置文件命令和application.properties配置類型
請參考一下SpringBoot配置文件application.properties的理解
三、yml屬性特殊注入
yml注冊數(shù)組注入,例如
company:
urls:
- https://www.aa.com
- https://www.bb.com這些數(shù)據(jù)可以綁定到一個Bean類中
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @author qinxun
* @date 2023-06-15
* @Descripion: 測試
*/
@Component
@ConfigurationProperties(prefix = "company")
public class Website {
private List<String> urls = new ArrayList<>();
public List<String> getUrls() {
return this.urls;
}
}測試
import com.example.springbootdemo.bean.Website;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringBootDemoApplicationTests {
@Autowired
private Website website;
@Test
void contextLoads() {
// 輸出 [https://www.aa.com, https://www.bb.com]
System.out.println(website.getUrls());
}
}四、和application.properties的區(qū)別
1.properties文件是無序的,yml文件是有序的。
2.yml配置不支持@PropertySource注解
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- springboot的application.yml配置port不生效的解決方案
- SpringBoot配置application.yml時遇到的錯誤及解決
- SpringBoot中application.yml配置文件的寫法
- 多個springboot項目如何使用一個外部共同的application.yml
- SpringBoot中application.properties、application.yaml、application.yml區(qū)別
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
- SpringBoot+log4j2.xml使用application.yml屬性值問題
- springboot?log4j2.xml如何讀取application.yml中屬性值
- Spring Boot application.yml配置文件示例詳解
相關(guān)文章
SpringBoot如何使用自定義注解實(shí)現(xiàn)接口限流
這篇文章主要介紹了SpringBoot如何使用自定義注解實(shí)現(xiàn)接口限流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
JAVA 開發(fā)之用靜態(tài)方法返回類名的實(shí)例詳解
這篇文章主要介紹了JAVA 開發(fā)之用靜態(tài)方法返回類名的實(shí)例詳解的相關(guān)資料,這里主要說明使用異常來得到類名,希望能幫助到大家,需要的朋友可以參考下2017-08-08
SpringBoot結(jié)合Maven項目依賴版本沖突問題解決
本文主要介紹了SpringBoot結(jié)合Maven項目依賴版本沖突問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析
這篇文章主要為大家介紹了java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

