yml内写入范例配置属性如下:
test:
middle:
text: hello everybody
number: 12345
user: #对象类型
username: jack
password: 123
animal: #List类型
- dog
- cat
- rabbit
一、获取方式1:
利用@Value,直接在调用处使用:
@Value("${test.middle.text}")
private String textInfo;
二、获取方式2:
先创建配置文件,对应好格式准备接收yml中的配置属性数据:
@Data //lombok简化注解,替代get、set和toString方法
@Component //将该配置文件交由spring'容器管理
@ConfigurationProperties(prefix = "test.middle") //设置该配置文件内的属性的对应yml中的前缀,本配置类中的属性名在于前缀合并后,如果能与yml中属性相匹配,则可取到其对应值
public class MyConfig {
private String text;
private String number;
//该User对象需创建,属性为username和password。且此处声明该对象时需初始化
private User user = new User();
//接收List
private List<String> animal;
//User内部类,用于接收yml中数据
@Data
public class User {
private String username;
private String password;
}
}
在调用处:
@Autowired
private MyConfig myConfig;
@Test
public void test1(){
System.out.println(myConfig.getText());
System.out.println(myConfig.getNumber());
System.out.println(myConfig.getUser());
myConfig.getAnimal().stream().forEach(a->{ //lambda函数的foreach方法是取到List内所有对象进行操作,且无返回值
System.out.println(a);
});
List<String> collect = myConfig.getAnimal().stream().map(a -> { //lambda函数的map方法是取到List内所有对象进行操作,有返回值
return a;
}).collect(Collectors.toList());
System.out.println(collect);
}