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.當前項目根目錄下的config目錄下
- 2.當前項目的根目錄下
- 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如何使用自定義注解實現(xiàn)接口限流
這篇文章主要介紹了SpringBoot如何使用自定義注解實現(xiàn)接口限流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06JAVA 開發(fā)之用靜態(tài)方法返回類名的實例詳解
這篇文章主要介紹了JAVA 開發(fā)之用靜態(tài)方法返回類名的實例詳解的相關(guān)資料,這里主要說明使用異常來得到類名,希望能幫助到大家,需要的朋友可以參考下2017-08-08SpringBoot結(jié)合Maven項目依賴版本沖突問題解決
本文主要介紹了SpringBoot結(jié)合Maven項目依賴版本沖突問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06