获取springboot项目中的默认yml文件的属性如下:
com
personMeetSoft:
appkey: XXXXXXX //这里是自己的属性值
appSecret: XXXXXXXX
domainName: http://www.tofacebook.com
如何通过@ConfigurationProperties注解读取这些值,并把值封装到一个内部类(PersonMeetSoft)中?
解决办法
1.添加一个配置类
@ConfigurationProperties(prefix ="com")
@Service("myProperties")
@Data
public class MyProperties {
private PersonMeetSoft personMeetSoft;
@Data
public static class PersonMeetSoft { // 要加static描述符,不然会报异常
private String appkey;
private String appSecret;
private String domainName;
}
}
2.编写一个测试类
@SpringBootTest
@RunWith(SpringRunner.class)
public class MyPropertiesTest {
@Autowired
private MyProperties myProperties;
@Test
public void say() {
System.out.println(myProperties.getPrivateNumber().getDomainName());
}
}
3.测试:先启动整个工程,然后再运行测试方法。最后得到结果为:
http://www.tofacebook.com
4.注意:当MyProperties在一个job中使用时,在测试类中直接new这个job,然后执行会读取不到MyProperties的内容,此时正确的做法是使用@Autowired注解,引入job来进行测试。 vx:tofacebook-com