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

目录
  • 注解配置获取yml,properties文件map即键值对
    • yml获取自定义键值对
    • properties 获取自定义键值对
  • properties配置应用,为什么需要使用properties文件

    注解配置获取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

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

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

    本文转自网络,如有侵权请联系客服删除。