【问题标题】:Spring Boot: @Value returns nullSpring Boot:@Value 返回 null
【发布时间】:2020-11-11 23:12:38
【问题描述】:

我是 springmvc 的新手,所以这个问题可能听起来很愚蠢。

我有类似的问题Spring Boot: @Value returns always null。我的例子:

系统属性

<sysproperty key="bar" value="bar_value" />

Bean 配置

@Configuration
public class Foo {
    @Value("${bar}")
    private String bar;
  
    @Bean(name = "getBar")
    public String getBar() { 
        return bar;
    }
}

访问 Bean (index.jsp)

String bar = webApplicationContext.getBean("getBar", String.class); // returns null instead of "bar_value"

但是,如果我将 Bean 配置更改为

@Configuration
public class Foo {
    @Value("${bar}")
    @Bean(name = "getBar")
    public String getBar(String bar) { 
        return bar;
    }
}

然后访问它,返回值是正确的,这可能是什么原因?我知道事情是由框架控制的,所以我对应用程序的实例化过程没有太多了解,非常感谢帮助。

【问题讨论】:

    标签: spring-boot javabeans


    【解决方案1】:

    请使用 Setter 注入。希望它能解决您的问题。

    
    public class Foo {
        
        private String bar;
        
        @Autowired
        public setBar(@Value("${bar}") String bar) {
            this.bar = bar;
        }
        
        // standard getter
        @Bean(name = "getBar")
        public String getBar() { 
            return bar;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 2020-02-25
      相关资源
      最近更新 更多