【问题标题】:Spring @Bean instantiation depending on @Value annotationSpring @Bean 实例化依赖于@Value 注解
【发布时间】:2015-02-20 01:27:39
【问题描述】:

我正在使用 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() 为空。在创建 Bean Foo 时,Spring 尚未从 application.properties 文件中填充 fooConfig 值。

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

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

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

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

    【讨论】:

    • 示例中不需要组件,这很令人困惑,我的错。添加 ComponentScan 就成功了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2012-08-02
    • 2012-02-08
    • 2012-02-26
    • 1970-01-01
    • 2019-11-03
    相关资源
    最近更新 更多