spring - 使用 Spring ServiceFactoryBean 获取具有所有依赖项的 bean
问题描述
我有自定义工厂类来使用 Spring 的服务工厂 bean 获取 bean。但是,我想从这个工厂 bean 中获取的 bean 具有嵌套的 bean 依赖项。我的问题是如何从这个工厂获取一个满足所有嵌套依赖项的 bean?
Spring Config :
<bean id="beanFactory"
class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean">
<property name="serviceLocatorInterface" value="com.example.MyBeanFactory">
</bean>
Public class MyBean
{
JobBuilder builder;
}
Public interface MyBeanFactory
{
MyBean getMyBean();
}
现在,当我这样做时MyBeanFactory.getMyBean()
……我希望在其中包含包含JobBuilde
实例的 MyBean 实例。
解决方案
您可以将实现类视为 Spring 应用程序中的任何其他类 - 只需自动装配您需要的任何依赖项。我的一个建议是为 bean 类定义一个接口。例子:
public interface MyBean {
void doStuff();
}
提供一个实现:
@Component("defaultMyBean")
public class DefaultMyBean {
@Autowire
JobBuilder jobBuilder;
public void doStuff() {
// do stuff with jobBuilder
}
}
然后是工厂界面:
public interface MyBeanFactory {
MyBean getMyBean();
}
配置保持不变。
推荐阅读
- c++ - Visual Studio 2019 16.10.03 - 大括号都是黑色的
- android - 向图形视图添加阴影和轮廓
- node.js - 链接令牌如何返回公共令牌?公共令牌 = request.body.publictoken?
- firebase - 如何在flutter中成功检测firebase用户注册和登录
- c# - Wpf 上的音频截断 (C#)
- c# - 使用 MaterialDesign 在 DatePicker WPF 中更改样式
- reactjs - 计算嵌套对象数组中的键
- python - 如何使用python将许多(n)个数据框保存到一个Excelsheet中而不删除前一个数据框
- firebase - 我应该如何构建此代码?我在颤动时收到以下错误
- lua-api - 元表作为表字段的值