springboot读取resource配置文件生成容器对象的示例代码

 更新时间:2023年07月26日 14:32:58   作者:Nuyoahll-_-ll  
这篇文章主要介绍了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请求中携带数据方式

    这篇文章主要介绍了SpringMVC 重新定向redirect请求中携带数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java正则表达式matcher.group()用法代码

    Java正则表达式matcher.group()用法代码

    这篇文章主要给大家介绍了关于Java正则表达式matcher.group()用法的相关资料,最近在做一个项目,需要使用matcher.group()方法匹配出需要的内容,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-08-08
  • 解决反射调用方法时获取bean失败的问题

    解决反射调用方法时获取bean失败的问题

    文章描述了通过反射机制调用类方法时遇到的@Autowired注入失败和事务回滚失败的问题,原因是反射生成的对象未被SpringIOC容器管理,解决方案是通过applicationContext.getBean("className")方法获取Spring管理的bean来解决注入和事务问题
    2025-10-10
  • IDEA 包转模块的解决步骤

    IDEA 包转模块的解决步骤

    很多朋友遇到这样一个问题,直接在idea拉取代码,发现创建的模块包类型不一样了,类似这样的问题该如何处理呢?很多朋友向小编求助,在这统一回答大家,需要的朋友参考下本文吧
    2021-06-06
  • Spring Boot中@value的常见用法及案例

    Spring Boot中@value的常见用法及案例

    @Value注解是Spring框架中强大且常用的注解之一,本文主要介绍了SpringBoot中@value的常见用法及案例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • springBoot (springCloud2025)集成redisCluster 集群的操作方法

    springBoot (springCloud2025)集成redisCluster 集群的操作方法

    文章介绍了如何使用Spring Boot集成Redis Cluster集群,并详细说明了pom.xml、application.yaml、集群配置类、其他配置类、连接池配置类、Redis工具类以及测试接口的配置和使用方法,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • SpringBoot Admin 使用指南(推荐)

    SpringBoot Admin 使用指南(推荐)

    这篇文章主要介绍了SpringBoot Admin 使用指南(推荐),Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序,非常具有实用价值,需要的朋友可以参考下
    2018-01-01
  • SpringBoot集成和使用RabbitMQ方式

    SpringBoot集成和使用RabbitMQ方式

    本文介绍了如何在SpringBoot项目中集成RabbitMQ,并结合死信队列实现延时消息,通过这些配置和机制,开发者可以在分布式系统中构建更为灵活和可靠的消息传递系统
    2024-12-12
  • JDK安装方法和Linux常见设置详细版教程

    JDK安装方法和Linux常见设置详细版教程

    这篇文章主要给大家介绍了关于JDK安装方法和Linux常见设置的相关资料,文章详细介绍了如何在Linux系统中设置静态IP、用户名和主机名,配置防火墙,安装JDK以及如何创建系统快照,需要的朋友可以参考下
    2024-11-11
  • 解决MybatisPlus批量插入数据报错:Error getting generated key or setting result to parameter object问题

    解决MybatisPlus批量插入数据报错:Error getting generated 

    在使用MybatisPlus进行批量插入数据时遇到空指针异常错误,分析原因是由于主键生成策略导致的,尝试通过设置useGeneratedKeys属性解决问题,但因批量插入方法限制,该方法未能成功,最终通过自定义mapper方法实现批量插入,解决了问题
    2024-09-09

最新评论