背景,最近搭了一个springboot的框架,其中使用到@ConfigurationProperties注解,通过properties配置文件来绑定属性,
配置类的代码如下
@Component
@ConfigurationProperties(locations={"classpath:my.properties"})
public class MyConfig implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String address;
private String ip;
////省略
my.properties内容
address=http://aaaaaaaaaaaaaaaaa
ip=111111使用springboot的启动类启动后,使用controller测试一下没有问题,能取到相应属性
控制器代码如下 @Autowired
public MyConfig myConfig;
@RequestMapping(value = "/user")
@ResponseBody
public String use()
// return user.getName();
return "&&&&&&&&"+myConfig.getAddress();
}然后我使用spring junit测试,测试方法是
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationConext.xml"})
public class Mytest {@Autowired
public MyConfig myConfig;
@Test
public void test() {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@"+myConfig.getAddress()+"*****"+myConfig.getIp()); }
问题出来了 ,junit测试却获取不到对应的属性,这是什么情况?难道junit需要特别的配置?请高手解答一下,希望是经过实测可用的答案,
配置类的代码如下
@Component
@ConfigurationProperties(locations={"classpath:my.properties"})
public class MyConfig implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String address;
private String ip;
////省略
my.properties内容
address=http://aaaaaaaaaaaaaaaaa
ip=111111使用springboot的启动类启动后,使用controller测试一下没有问题,能取到相应属性
控制器代码如下 @Autowired
public MyConfig myConfig;
@RequestMapping(value = "/user")
@ResponseBody
public String use()
// return user.getName();
return "&&&&&&&&"+myConfig.getAddress();
}然后我使用spring junit测试,测试方法是
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationConext.xml"})
public class Mytest {@Autowired
public MyConfig myConfig;
@Test
public void test() {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@"+myConfig.getAddress()+"*****"+myConfig.getIp()); }
问题出来了 ,junit测试却获取不到对应的属性,这是什么情况?难道junit需要特别的配置?请高手解答一下,希望是经过实测可用的答案,
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class TestClass{...}然后再运行测试用例,应该可以通过,反正我这样做是没问题的。