我的班级内有以下代码
public void startListeners() throws Exception {
List<QueueConfiguration> queueConfigs = queueConfigResolver.getQueueConfigurations();
for(QueueConfiguration queueConfig : queueConfigs){
//TODO : work on this make it more testable
ICustomListener readerListener = new MyCustomListener(queueConfig);
readerListeners.add(readerListener);
readerListener.start();
}
}
我使用Spring进行依赖注入(不是在这种情况下,而是整体)。现在这个代码存在两个问题。
答案 0 :(得分:0)
据我所知,你想创建一个新的bean而不是 ICustomListener readerListener = new MyCustomListener(queueConfig); 如果是这种情况,请为mycustomlistener创建工厂并使用
public abstract TestClient createTestClient();
创建bean并定义
<bean id="testClient" class="com.myproject.testbeans.TestClient" scope="prototype">
</bean>
<bean id="testClientFactory" class="com.myproject.testbeans.TestClientFactory">
<lookup-method name="createTestClient" bean="testClient" />
</bean>
在您的上下文中将解决您的问题。这样,每次调用工厂的createTestClient方法时,都会创建一个新bean并将其提供给您的代码。但是,您必须通过setter而不是构造函数来提供配置对象。