首页 > 解决方案 > 使 bean 的成员可用于自动装配

问题描述

@Component
class MultiProvider {
    public Foo getFoo();
    public Bar getBar();
}

@Component
class FooConsumer {
    FooConsumer(Foo f);
}

我可以MultiProvider.getFoo()自动装配到FooConsumer构造函数中吗..

标签: javaspringautowired

解决方案


Spring 只能自动装配声明的 bean,可能的解决方法如下:

@Component
class FooConsumer {
    private final Foo foo;

    FooConsumer(MultiProvider multiProvider) {
        // MultiProvider will be autowired by spring - constructor injection
        this.foo = multiProvider.getFoo();
    }
}

推荐阅读