springboot配置文件yml的map形式
1、yml中的格式
tes: maps: {key1: 12,key2: 34}
或者
tes: maps: key1: 15 key2: 2
2、创建一个类
然后创建对应类型的字段(注意下这个类的那两个注释了的注解)
package com.etc.lzg; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; import java.util.Map; @Data @Component //@Configuration //这个我这里虽然存在时能成功,不过我注释了也是可以的,这个是看网上有人写就跟着写上的 //@PropertySource(value = {"classpath:/application.yml"}, encoding = "utf-8") //有的人是写了这个注解能成功,但是我这边不能有这个注解,有的话,就连编译都会报错 @ConfigurationProperties(prefix = "tes") public class MapTest { private Map<String, String> maps; }
3、引用
package com.etc.lzg; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class LzgApplicationTests { @Autowired private MapTest mapTest; @Test public void contextLoads() { System.out.println(mapTest.toString()); System.out.println("key1="+mapTest.getMaps().get("key1")); } }
4、打印
SpringBoot yaml文件map集合使用
yaml文件配置
patform.config: maps: person_one: userName: A platform: A platform person_two: userName: B platform: B platform
配置文件对应的bean
如果yaml文件不是在application.yaml,则注解需要配置locations属性
@ConfigurationProperties(value="platform.config",locations="classpath:config/applicaion-platform.yaml") public class ParamConfiguration{ private Map<String,ParamInfo> maps =new LinkedHashMap<String,ParamInfo>(); /** set ,get 方法 。。。。 */ public static class ParamInfo{ private String username; private String platform; /** set ,get 方法 。。。。 */ } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/220020/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)