解决Spring 使用 @Value 取不到值

当在.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 Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,010评论 6 342
  • 又是一年高考时,相信很多考生也像我当年一样紧张到失眠。 有时大半夜打开朋友圈,发个动态"但愿白天有说有笑,晚上睡个...
    夜未秧歌阅读 345评论 2 2
  • 173分钟,接近三小时的时间,我选择在今晚观看完。杨德昌导演的作品《一一》,很早就列入影单,今天是看《见字如面》,...
    冬冬儿ann阅读 451评论 4 0
  • 从去年元月一日参加过,万人万米大赛以后,自己也开始了跑步。我就在比赛前训练了一周的时间。十多年来自己一直下决心跑步...
    让文字温暖心灵阅读 354评论 0 0