使用springboot配置文件yml中的map形式
短信预约 -IT技能 免费直播动态提醒
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>();
public static class ParamInfo{
private String username;
private String platform;
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341