聽說springboot有個註解@Async能夠實現異步調用,而後我來用用看!spring
增長一個maven新模塊:springboot
增長以下依賴,不增長配置:併發
而後咱們寫一個異步調用的服務:異步
這裏須要實現異步的功能,還須要在Application加上註解@EnableAsync,相似於Spring的<task:*> XML命名空間中的功能。maven
而後咱們寫一個測試用例測試
日誌輸出:.net
從上面的日誌中,咱們能夠看到調用是異步執行的,就是使用一下這個功能,實際上使用也不用這麼複雜吧,使用的Future<String>,咱們在新版本的JDK中,還能夠使用其餘的方式!線程
咱們能夠看到在EnableAsync註解中有@Import AsyncConfigurationSelector.class(用來導入一個或多個class,這些類會注入到spring容器中,或者配置類,配置類裏面定義的bean都會被spring容器託管)。日誌
@EnableAsync註釋啓動了Spring在後臺線程池中運行@Async方法的能力。該類還自定義使用的Executor。在咱們的示例中,咱們但願將併發線程數限制爲2並將隊列大小限制爲500.您能夠調整更多內容。默認狀況下,使用SimpleAsyncTaskExecutor。blog
文檔裏寫了@Async有兩個使用的限制:
下節再續!
有什麼討論的內容,能夠加我公衆號: