java - 使 bean 的成员可用于自动装配
问题描述
@Component
class MultiProvider {
public Foo getFoo();
public Bar getBar();
}
@Component
class FooConsumer {
FooConsumer(Foo f);
}
我可以MultiProvider.getFoo()
自动装配到FooConsumer
构造函数中吗..
- 不
Foo
自己制作 bean(例如,因为 Spring 不应该销毁它,因为这是我们MultiProvider
的责任) - 并且不引入
FooConsumer
对MultiProvider
(或任何其他类)的依赖?
解决方案
Spring 只能自动装配声明的 bean,可能的解决方法如下:
@Component
class FooConsumer {
private final Foo foo;
FooConsumer(MultiProvider multiProvider) {
// MultiProvider will be autowired by spring - constructor injection
this.foo = multiProvider.getFoo();
}
}
推荐阅读
- django - Djoser:触发用户帐户激活操作
- jquery - 如何建立jquery旋转画廊来回?
- postgresql - 如何在 Postgres 中删除多个 blob 大对象
- python - networkx 中缺少箭头
- c# - SerialPort BaseStream BeginRead 从不调用回调
- android - 存储 diff 的数据。语
- reporting-services - SSRS 在字段右侧添加空格
- networking - 我们可以使用定向广播作为有限广播吗?请参阅下面的场景
- google-analytics - 在 BigQuery 中按 Google Analytics 自定义维度过滤
- apache-spark - Spark批量加载文件集合并从每个文件中找到包含文件级别附加信息的行