2016-09-22 30 views
0

我有Spring服務,它執行一些任務後,啓動一個背景異步任務。我已經定義爲一個組件的任務本身。 現在,如果我必須使用屬於我發起線程的服務的一些方法。我可以在線程(組件)中自動裝載服務,它將起作用。問題是...設計。它帶來了一種循環依賴? 我們如何解決這個問題?設計:Spring服務的後臺線程

ServiceA->啓動ThreadA組件 - > ThreadA需要調用ServiceA中的方法。

回答

0

什麼如所描述使用@Async註解的方法here

非測試例如:

@Service 
public class MyService { 

    private final RestTemplate restTemplate; 

    public String mySyncMethod(){ 
     return "Hello World"; 
    } 

    @Async 
    public Future<String> myAsyncMethod() throws InterruptedException { 
     return new AsyncResult<>(mySyncMethod()); 
    } 

}