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

    这样就可以获取到了。

  • 相关阅读:
    android-手势密码
    MS SQL 技巧总结--持续更新
    MySQL 笔记一
    spring 家族
    Java集合
    javaScript
    java 知识点随记
    MySQL 知识点随记
    odoo 权限杂记
    win10 Ubuntu子系统安装&odoo10社区版安装
  • 原文地址:https://www.cnblogs.com/hunttown/p/14138097.html
Copyright © 2011-2022 走看看