當(dāng)在.properties文件中寫入 一些值時(shí),我們可以通過在類的屬性上使用@Value注解,取到這個(gè)值。
如在配置文件中寫入
user=st
則在類中
public class Test(){
@Value("{user}")
private String user;
.....
}
這樣可以獲取到值。但是根據(jù)網(wǎng)上的例子,我一直獲取不到,首先根據(jù)spring的例子,
想要使用@Value,必須把當(dāng)前類加入spring的容器管理, 如果使用注解,就是在類上加入
@Controller @Service @Component 等容器注解,可是我加入了@Component注解,依然不能獲取到值,但是如果是在@Controller 下,則可以。翻閱多篇博客論壇后,終于找到原因。
原來,使用@Value的類,在spring中,不能直接通過new 操作符來使用,而是應(yīng)該通過spring的注解 @Autowired 來使用,
如
public class Test1(){
@Autowired
private Test test;
public void getValue(){
test.getUser(); //user=st
}
.....
}
這樣才能成功通過@Value注解取到配置文件中的值。