Spring @Bean实例化取决于@Value注释

时间:2015-02-20 01:27:39

标签: java spring spring-boot

我正在使用Spring Boot并且无法正确初始化我的一个bean。定义如下:

@Configuration
public class BeanConfiguration  {
    @Value("${foo.config}")
    private String fooConfig;

    @Bean
    public Foo getFoo(){
        Foo foo = new Foo();
        foo.setConfig(fooConfig);
        return foo;
    }
}

然后,当使用自动连接的foo bean时,foo.getConfig()为null。在创建bean Foo时,Spring还没有从application.properties文件中填充fooConfig值。

实例化bean的正确方法是什么?谢谢!

1 个答案:

答案 0 :(得分:4)

@Configuration本身不是一个bean。您显示的示例似乎很简单。

我的建议是使用BeanConfiguration类上的@ComponentScan注释,在Foo类存在的任何地方添加组件扫描。在Foo类本身内自动装配fooConfig。