zoukankan      html  css  js  c++  java
  • 为什么获取不到@Value注解值?

    使用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());  
    }

    这样就可以获取到了。

  • 相关阅读:
    查看JAVA占用CPU高的线程日志
    行为面试法(STAR)
    下载mysql document
    win10 子系统ubuntu中文乱码
    java 排序
    进制
    开始转型学习java
    java Collections工具类
    java Map实例
    java Map
  • 原文地址:https://www.cnblogs.com/hunttown/p/14138097.html
Copyright © 2011-2022 走看看