springboot讀取resource配置文件生成容器對象的示例代碼
背景:需要對地區(qū)和語言做映射,給一個映射表,通過映射來確定最后保留的是哪個值。可以寫到數據庫,但是數量比較小,直接放到配置文件讀取即可。
1、使用@ConfigurationProperties直接讀取配置文件中的屬性
1、在application.properties中配置
# 引入application-language.yml 這個文件 spring.profiles.include=language
2、application-language.yml 文件信息
language-mapping: ...: 其他 Cantonese: 粵語 Chinese: 普通話 Danish: 丹麥語 Mende西班牙語: 西班牙語 Mongolian: 蒙古語 阿拉伯語: 阿拉伯語 安徽方言: 安徽方言 保加利亞語: 保加利亞語
3、便攜配置類注入到容器中
@Configuration
public class YmlMappingConfiguration {
@Bean("languageMapping")
@ConfigurationProperties("language-mapping")
public Map<String,String> initLanguageMapping(){
return new HashMap<>();
}
}此時你就可以使用了,但是有個問題,他會默認把…、漢字作為key的給過濾掉,顯然不是我們要的效果。
2、直接使用Resource讀取配置文件,然后使用YamlMapFactoryBean獲取map對象
@Configuration
public class YmlMappingConfiguration {
@Bean("languageMapping")
public Map<String,String> initLanguageMapping2(){
final Resource resource = new ClassPathResource("application-language.yml");
final YamlMapFactoryBean factoryBean = new YamlMapFactoryBean();
factoryBean.setResources(resource);
final Map<String, Object> object = factoryBean.getObject();
final HashMap<String, String> languageMappingFormat = new LinkedHashMap<>();
Map<String, String>languageMapping=(HashMap)object.getOrDefault("language-mapping", new HashMap<String, String>());
for (Map.Entry<String,String>entry:languageMapping.entrySet()){
final String trimKey = StringUtils.trimToNull(entry.getKey());
final String trimVal = StringUtils.trimToNull(entry.getValue());
if(trimKey!=null && trimVal!=null){
languageMappingFormat.put(trimKey,trimVal);
}
}
return languageMappingFormat;
}
}然后就能從容器中獲得該對象進行邏輯操作了。
到此這篇關于springboot讀取resource配置文件生成容器對象的文章就介紹到這了,更多相關springboot讀取resource配置文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringMVC 重新定向redirect請求中攜帶數據方式
這篇文章主要介紹了SpringMVC 重新定向redirect請求中攜帶數據方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
springBoot (springCloud2025)集成redisCluster 集群的操作方法
文章介紹了如何使用Spring Boot集成Redis Cluster集群,并詳細說明了pom.xml、application.yaml、集群配置類、其他配置類、連接池配置類、Redis工具類以及測試接口的配置和使用方法,感興趣的朋友跟隨小編一起看看吧2025-11-11
解決MybatisPlus批量插入數據報錯:Error getting generated 
在使用MybatisPlus進行批量插入數據時遇到空指針異常錯誤,分析原因是由于主鍵生成策略導致的,嘗試通過設置useGeneratedKeys屬性解決問題,但因批量插入方法限制,該方法未能成功,最終通過自定義mapper方法實現批量插入,解決了問題2024-09-09

