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

网友投稿 853 2022-10-30

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

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中的依赖配置

org.springframework.boot

spring-boot-configuration-processor

true

代码:

@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.maphttp://.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&pidhttp://=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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:23.JSP 隐式对象
下一篇:55exception对象
相关文章

 发表评论

暂时没有评论,来抢沙发吧~