使用Spring时,你发现竟然获取不到@Value的注解值?

例如我在Resource中配置:

#网站名称
website.name=百度

然后,你需要注意三点:

1、类需要使用@Component、@Controller等进行注解;

2、字段不能使用static修饰;

3、不能在bean初始化时构造方法中使用。

@Component
public class Test(){
    @Value("{website.name}")
    private String webSiteName;

    public Test(){
        //不能在此使用
    }
}

以上是没有问题的。

 

但是...... 我在另一个类中调用时:

public class Test2(){
    Test model=new Test();
    System.out.println(model.webSiteName);  
}

这样却取不到值,为什么?

困扰了我好久,最后翻了N多帖子以后,终于找到了原因。原来,使用@Value的类,在spring中,不能直接通过new 操作符来使用,而是应该通过spring的注解 @Autowired 来使用。

public class Test2(){
    @Autowired
    private Test model;

    System.out.println(model.getWebSiteName());  
}

这样就可以获取到了。

 

相关文章:

  • 2021-09-28
  • 2021-06-02
  • 2021-06-24
  • 2022-02-28
  • 2022-03-07
  • 2021-06-22
  • 2021-04-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-17
  • 2021-12-17
  • 2021-04-29
  • 2022-12-23
  • 2023-03-31
相关资源
相似解决方案