我無法理解如何使用Taskexecutor連接所有部件。 我有一個我創建的任務BidProposalTask。 (其實現Runnable類) 任務constuctor有一個參數,並且需要自動裝配DB訪問等將參數傳遞給Spring的Taskexecutor中的runnable類
我想出了這個代碼的執行類:
public class ExecuteBidProposalTask {
private TaskExecutor taskExecutor;
private BidProposalTask bidProposalTask;
public ExecuteBidProposalTask(TaskExecutor taskExecutor,
BidProposalTask bidProposalTask) {
super();
this.taskExecutor = taskExecutor;
this.bidProposalTask = bidProposalTask;
}
public void start() {
taskExecutor.execute(bidProposalTask);
}
}
和下面的XML上下文配置:
<bean id="taskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="queueCapacity" value="25" />
</bean>
我Spring的文檔中看到的,我創建了一個TaskExecutor的綠豆,但是,問題是,BidProposalTask也需要注入。它不是一個單身人士,我需要在項目中反覆創建它,併爲構造函數提供不同的參數。
基本上問題是如何autowire一個非單身bean,所以它的自動裝配也將工作?
這是相當複雜的解釋,所以我希望你明白我的問題......
這聽起來很有趣,你有沒有鏈接,或者這樣的注射的例子? – stdcall
這很容易。只要讓ExecuteBidProposalTask實現ApplicationContextAware(參見http://blog.imaginea.com/making-a-spring-bean-applicationcontext-aware/),那麼你可以從字面上調用applicationContext.getBean(「bidProposalTask」);並且只要bean被定義爲這樣的 '你總能得到一個新的實例。 –
Chris
是的,但是如何爲每個bidProposalTask實例提供可變參數? – stdcall