Spring / @ Beans注释

时间:2015-04-27 14:35:08

标签: spring

我正在阅读春季文档。我想知道这两个例子之间有什么区别。我需要创建Bar @bean吗?

   public class AppConfig {
        @Bean
        public Foo foo() {
            return new Foo(bar());
        }

        @Bean
        public Bar bar() {
            return new Bar();
        }
    }

VS

public class AppConfig {
    @Bean
    public Foo foo() {
        return new Foo(bar());
    }

    public Bar bar() {
        return new Bar();
    }
}

1 个答案:

答案 0 :(得分:3)

在第一个中,Bar是一个Spring bean,而在第二个中,它不是。

因此,如果Bar必须与其他Spring bean一起自动装配,或者它有Spring注释(如Transactional等),第二个示例将无法按预期工作:Bar实例是一个简单的POJO,Spring是不知道。