美文网首页springboot
解决Spring 使用 @Value 取不到值

解决Spring 使用 @Value 取不到值

作者: sT丶 | 来源:发表于2017-08-16 10:30 被阅读2789次

当在.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注解取到配置文件中的值。

相关文章

网友评论

    本文标题:解决Spring 使用 @Value 取不到值

    本文链接:https://www.haomeiwen.com/subject/ylabrxtx.html