springboot代码,注解配置获取yml,properties文件的map即键值对

 更新时间:2022年02月16日 15:06:09   作者:焱墩  
这篇文章主要介绍了springboot代码,注解配置获取yml,properties文件的map即键值对,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

注解配置获取yml,properties文件map即键值对

yml获取自定义键值对

yml中的键值对

test:
  map:
    key1: value1
    key2: value2
    key3: value3

pom中的依赖配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

代码:

@Component
@ConfigurationProperties(prefix = "test")
public class MyConfiguration { 
    private String name; 
    private Map map = new HashMap(); 
    public Map getMap() {
        return map;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}

然后在调用层,如controller注入即可测试:

@Autowired
MyConfiguration myConfiguration;

注意:该实例中的yml文件默认是:application.yml文件。也就是说,键值对要写在application.yml文件中;

properties 获取自定义键值对

config.properties 中的键值对:

test.map.key1=value1
test.map.key2=value2
test.map.key3=value3

pom中无依赖配置

代码:

@Component
@Configuration
@PropertySource(value = {"classpath:/config.properties"}, encoding = "utf-8")
@ConfigurationProperties(prefix = "test")
public class MyConfiguration { 
    private String name; 
    private Map map = new HashMap(); 
    public Map getMap() {
        return map;
    }
 
    public void setMap(Map map) {
        this.map = map;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}

然后在调用层,如controller注入即可测试:

@Autowired
MyConfiguration myConfiguration;

以上实例只是针对于map(键值对)的获取,相对于读取文件,解析文件流来说,方便了许多。

properties配置应用,为什么需要使用properties文件

在项目中我们常常会使用Constants常量类,达到系统全局配置的目的。

但是有些常量需要动态的配置,如果项目上线后,每次修改Constants.java然后再编译,再上传Constants.class文件,再重启服务器。这样导致很繁琐。

如果将需要修改的配置项写成properties文件,将会在项目后期维护带来很大的方便~!

root.url=http://localhost:8080/BNCAR2/
root.path=E:/ws2/BNCAR2/rel/
mall.partstype.url=mall.jsp?rowid=0&typeFlag=0&pid=35
mall.carproduct.url=mall.jsp?rowid=0&typeFlag=1&pid=74
mall.partstype.typename1=\u4FDD\u517B\u5957\u88C5
mall.partstype.typename2=\u7CFB\u7EDF\u517B\u62A4
mall.partstype.typename3=\u8F6E\u80CE\u8F6E\u6BC2
network.province.name1=\u4E0A\u6D77
network.province.name2=\u6C5F\u82CF
pageutil.persize=10

注意名=值之间不要留空格,注意名的命名习惯,一般为小写,层级关系之间用点号分隔。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java多线程 原子性操作类的使用

    Java多线程 原子性操作类的使用

    这篇文章主要介绍了Java多线程 原子性操作类的使用,在java5以后,我们接触到了线程原子性操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,本文总结一下Atomic系列的类的使用方法,下面一起进入文章了解详细内容
    2021-10-10
  • Mybatis-Plus自动生成的数据库id过长的解决

    Mybatis-Plus自动生成的数据库id过长的解决

    这篇文章主要介绍了Mybatis-Plus自动生成的数据库id过长的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Mybatis ResultMap和分页操作示例详解

    Mybatis ResultMap和分页操作示例详解

    这篇文章主要为大家介绍了Mybatis ResultMap和分页操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • springboot vue测试平台接口定义前后端新增功能实现

    springboot vue测试平台接口定义前后端新增功能实现

    这篇文章主要介绍了springboot vue测试平台接口定义前后端新增功能实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Java多线程实现方块赛跑小游戏

    Java多线程实现方块赛跑小游戏

    这篇文章主要为大家详细介绍了Java多线程实现方块赛跑小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Java开发中的OOM内存溢出问题详解

    Java开发中的OOM内存溢出问题详解

    这篇文章主要介绍了Java开发中的OOM内存溢出问题详解,OOM,全称 Out Of Memory,意思是内存耗尽或内存溢出,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个 error,需要的朋友可以参考下
    2023-08-08
  • Java集合Stack源码详解

    Java集合Stack源码详解

    java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用!
    2018-05-05
  • Dom4j解析xml复杂多节点报文方式

    Dom4j解析xml复杂多节点报文方式

    这篇文章主要介绍了Dom4j解析xml复杂多节点报文方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java实现SM3加密和验证的示例代码

    Java实现SM3加密和验证的示例代码

    在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,本文给大家详细介绍了使用Java实现SM3加密和验证,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • java中的equals()和toString()方法实例详解

    java中的equals()和toString()方法实例详解

    这篇文章主要介绍了java中的equals()和toString()方法实例详解的相关资料,这里举例说明,并附实例代码,和实现效果图,需要的朋友可以参考下
    2016-11-11

最新评论