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

    这样就可以获取到了。

  • 相关阅读:
    UITabar 设置字体大小/颜色
    NSURLSession的基本使用
    报错/警告提示
    实现毛玻璃模糊效果/DRNRealTimeBlur
    免证书真机调试
    xcode添加音效
    NSCalenda日历类
    NSDate--日期格式
    NSArray其中的方法--遍历,
    Mysql学习笔记004
  • 原文地址:https://www.cnblogs.com/hunttown/p/14138097.html
Copyright © 2011-2022 走看看