Properties 配置 Map 、 List
JAVA配置文件中配置map 和list
·
1. Properties 配置 Map 、 List
今天在工作中需要根据不同的组,配置不同的参数,写在apollo里,自然的想到了配一个map,但是之前没有配置过,所以这里做一下小节
1.1 添加配置类
@Configuration
@ConfigurationProperties(prefix = "your-prefix")
@Data
public class MapConfig {
private Map<Long, Integer> myMap = Maps.newHashMap();
private List<String> list = new ArrayList<>();
}
@Configuration
表示它是一个配置类@ConfigurationProperties(prefix = "your-prefix")
这里prefix表示取前缀为your-prefix
的变量@Data
是 lombok的注解,因为这里需要myMap
属性的 set 和 get方法
这里会有个问题,提示 @ConfigurationProperties
没有路径,需要配置如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
1.2 properties文件
<!--这里表示添加 key, value 为 32 : 0 的键值对-->
your-prefix.myMap.32 = 0
your-prefix.list[0] = "1"
your-prefix.list[1] = "2"
1.3 使用
加载会在项目启动时候进行,只需要在项目中,注入就行了
@Autowired
private MapConfig mapConfig;
注意:maven依赖不能忘
2. Apollo配置 List 和 map
本来想着一顿操作猛如虎,然后被批了。 原因是我们项目用的是apollo,可以实时修改配置的值,实现热部署。所以今天把上面的配置类都删了,重新配置一个map,简单便捷。
2.1 Apollo简介
2.2 配置List和Map
<!--list配置-->
apollo.my.list = 1,2
<!--map配置-->
apollo.my.map = {1:2, 2:2, key:value}
使用方式
@Value("#{'${apollo.my.list}'.split(',')}")
private List<Long> apolloList;
@Value("#{${apollo.my.map}}")
private Map<Long,Integer> apolloMap;
这里一个新的使用方式是 #
的使用,之前我们 @Value
使用的时候,都是直接 @Value("${}")
这种方式,这次涨知识了
更多推荐
已为社区贡献1条内容
所有评论(0)