当在.properties文件中写入 一些值时,我们可以通过在类的属性上使用@Value注解,取到这个值。
如在配置文件中写入
user=st
则在类中
public class Test(){
@Value("{user}")
private String user;
.....
}
这样可以获取到值。但是根据网上的例子,我一直获取不到,首先根据spring的例子,
想要使用@Value,必须把当前类加入spring的容器管理, 如果使用注解,就是在类上加入
@Controller @Service @Component 等容器注解,可是我加入了@Component注解,依然不能获取到值,但是如果是在@Controller 下,则可以。翻阅多篇博客论坛后,终于找到原因。
原来,使用@Value的类,在spring中,不能直接通过new 操作符来使用,而是应该通过spring的注解 @Autowired 来使用,
如
public class Test1(){
@Autowired
private Test test;
public void getValue(){
test.getUser(); //user=st
}
.....
}
这样才能成功通过@Value注解取到配置文件中的值。
网友评论