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<>();
}
  1. @Configuration 表示它是一个配置类
  2. @ConfigurationProperties(prefix = "your-prefix") 这里prefix表示取前缀为 your-prefix的变量
  3. @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简介

携程开源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("${}")这种方式,这次涨知识了

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐