在创建其他依赖豆之前,是否可以避免@Autowire 一些豆?让我用一个例子更好地解释它:
我有一个 FactoryBean,它创建一个类型为A的对象,该对象具有一个名为a的属性。如果该属性为 null,它会为 bean A分配一个默认值。
在@Configuration 类中,我有:
@自动连线 私有的一个 myBean;
发生的事情是工厂创建了 bean(我不完全理解如何)但是工厂中的字段a为空,我需要它需要另一个用于创建A的 bean 。我无法向 Factory 添加任何注释,因为它位于外部依赖项中。
问题是我需要在 @Autowired 向工厂请求对象之前设置a的值。考虑到我的限制,有可能吗?
编辑 继承人的代码:
@Configuration
@ImportResource("classpath:factory-context.xml")
public class ServiceContextConfig {
@Autowired
private A createdObject;
@Bean(name = "entities-list")
public List<String> getEntity() {
List<String> ls = new ArrayList<String>();
ls.add("countriescatalog");
return ls;
}
然后 factory-context.xml 看起来像这样:
<bean id="client-factory" class="ClientFactory">
<property name="entities" ref="entities-list"/>
</bean>
其实配置要大一些。我没有尝试像这样的简化示例。我将尝试使用像这样的简化上下文来重现它,看看我是否可以按照@emd 的建议修复它包装工厂