springboot读取resource配置文件生成容器对象的示例代码
背景:需要对地区和语言做映射,给一个映射表,通过映射来确定最后保留的是哪个值。可以写到数据库,但是数量比较小,直接放到配置文件读取即可。
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配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
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


最新评论