赞
踩
在 yml 中可以配置 对象、数组、对象数组等信息,
# 对象类型 user: userName: ItJiange # 表示对象中属性 age: 23 # 数组类型 city: - lanzhou - xian # 对象数组 game: - gameName: yuanshen version: 4.2 - gameName: csgo version: 2.0
@Slf4j @Configuration public class TestYmlConfig { // 1. 对象类型取值 @Value("${user.userName}") private String userName; @Value("${user.age}") private int age; // 2. 数组类型取值 @Value("${city[0]}") private String city1; @Value("${city[1]}") private String city2; // 3. 对象数组 @Value("${game[0].gameName}") private String gameName; @Value("${game[0].version}") private String version; @Value("${game[1].gameName}") private String gameName2; @Bean public void testYmlMsg() { log.info("用户昵称:{}", userName); // 用户昵称:ItJiange log.info("用户年龄:{}", age); // 用户年龄:23 log.info("城市一:{}", city1); // 城市一:lanzhou log.info("城市二:{}", city2); // 城市二:xian log.info("游戏 1 名称:{}", gameName); // 游戏 1 名称:yuanshen log.info("游戏 2 名称:{}", version); // 游戏 2 名称:4.2 log.info("游戏 2 :{}", gameName2); // 游戏 2 :csgo } }
还可以调用Environmen
对象中getProperty()
方法引用
@Slf4j
@Configuration
public class TestYmlConfig {
@Autowired
private Environment environment;
@Bean
public void testYmlMsg() {
log.info("用户昵称:{}", environment.getProperty("user.userName")); // 用户昵称:ItJiange
}
}
还可以直接将配置信息,赋值给实体类字段
实体类:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String userName;
private int age;
}
测试:
@Configuration
@Slf4j
public class TestYmlConfig2 {
@Autowired
private User user;
@Bean
public void testUser() {
log.info(user.getUserName());
log.info(user.getAge() + "");
}
}
执行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。