2012-01-04 79 views
0
@Bean 
public EventHandler eventHandler(){ 
    EventHandler handler= new EventHandler(session()); 
    session().registerEventListener(handler); 
    return handler; 
} 

    public class EventHandler implements EventListener{ 
     @Override 
     @Async 
     public void notify(Event event) { 
        //do work 
     } 
    } 

我試圖創建一個異步處理程序,並註冊它......似乎沒有工作,我相信它在bean創建之後,圍繞這個bean的代理對象後,春天只會造成異步包裝已創建....我如何解決此問題?春異步參考

回答

0

我有一個類似的問題,我不能用@Async調用@Override方法 - 它總是會被同步調用。 我的解決方法是使用直接(非@覆蓋)接口聲明另一個@Service bean,以將調用轉發給我通過@Override接口調用的bean。 我認爲代理只是不能通過基類調用工作。