在工做中會遇到這樣的業務,生成一個訂單後須要給指定的用戶發送短信或者郵件,可是短信或者郵件發送失敗又不會影響正常的業務;spring
這裏介紹經過ApplicationContext和spring的@EventListener方式實現app
在service中引用ApplicationContext,在訂單生成後的方法中經過applicationContext.publishEvent(Order),線程
在經過@EventListener註解在做用指定方法,方法入參是訂單對象,在此方法執行具體短信郵件業務,爲了不是主線程執行該方法,須要在spring中配置線程池來執行此方法;對象