我有彈簧啓動應用程序我創建from here at spring's site。我篡改了它,基本上已經將它複製到兩個工作中,因爲我正在創建一個更大的應用程序,這種應用程序將以這種方式進行構建。雖然沒有任何東西在運行,我知道這很可能是我錯過的小事。彈簧啓動應用與彈簧批量不運行作業
如果我把所有東西都塞進一個包,就像教程一樣,它可以正常工作,但是如果我將Application.java
解壓到它自己的包中,它似乎不會承認其他兩個包。即使通過-Dspring.batch.job.names=myJob
。
這一切就是我的主類:
@SpringBootApplication
@EnableBatchProcessing
public class Application implements CommandLineRunner {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... arg0) throws Exception {
System.out.println("Running...");
}
}
這個項目的結構是這樣的:
\---main
+---java
| +---app
| | Application.java
| |
| +---job1
| | Job1BatchConfiguration.java
| | Job1JobCompletionNotificationListener.java
| | Job1Person.java
| | Job1PersonItemProcessor.java
| |
| \---job2
| Job2BatchConfiguration.java
| Job2JobCompletionNotificationListener.java
| Job2Person.java
| Job2PersonItemProcessor.java
|
\---resources
sample-data-2.csv
sample-data.csv
schema-all.sql
同樣,如果我把Application.java
到無論是job1
或job2
包,該作業將執行,如果我把它們全部放入一個包並通過-Dspring.batch.job.names=job1,job2
,它將執行兩個(或者如果我想要的話)。但是,如果Application.java
處於不同的包裝範圍,我怎樣才能使此命令起作用?有沒有辦法讓它看到這些?
編輯:所以看起來我可以
@Import({Job1BatchConfiguration.class, Job1JobCompletionNotificationListener.class, Job2BatchConfiguration.class, Job2JobCompletionNotificationListener.class})
標註我Application.java
但是,如果我超過甚至比三項工作更多,這個解決方案似乎變得很馬虎。任何方式來壓縮作業的這個功能?
啊,你好。我知道這是我錯過的一些小東西,完全看着這個功能。我離開了辦公室,所以當我回來時我肯定會嘗試這種方式,我相信我會發現我的問題將得到解決。再次感謝您的幫助伴侶 –