一般對于業務復雜的流程,會有一些處理邏輯不需要及時返回,甚至不需要返回值,但是如果充斥在主流程中,占用大量時間來處理,就可以通過異步的方式來優化。
創新互聯主營王益網站建設的網絡公司,主營網站建設方案,成都App制作,王益h5小程序設計搭建,王益網站營銷推廣歡迎王益等地區企業咨詢實現異步的常用方法遠不止兩種,但是個人經驗常用的,好用的,這里我就說兩種,最好用的是第二種。
org.springframework.scheduling.annotation.Async
java.util.concurrent.CompletableFuture
其中第一種的使用注意事項比較多
1.不要在本類中異步調用。即一個方法是異步方法,然后用另一個方法調用這個異步方法。
2.不要有返回值,使用void
3.不能使用本類的私有方法或者非接口化加注@Async,因為代理不到失效
4.異步方法不能使用static修飾
5.異步類需使用@Component注解,不然將導致spring無法掃描到異步類
6.SpringBoot框架必須在啟動類中增加@EnableAsync注解
7.異步方法不要和事物注解同時存在。可以在事物的方法中調用另外一個類中的異步方法。在調用Async方法的方法上標注@Transactional是管理調用方法的事務的,在Async方法上標注@Transactional是管理異步方法的事務,事務因線程隔離
@Async的使用方式
1.pom引入依賴。只要依賴中存在spring-context包即可。
2.需要在springboot啟動類上加上開啟異步的注解@EnableAsync
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; @EnableAsync @EnableHystrix @EnableFeignClients @SpringBootApplication public class OrderServerApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(OrderServerApplication.class); } public static void main(String[] args) { SpringApplication.run(OrderServerApplication.class, args); } }
另外有需要云服務器可以了解下創新互聯建站vcdvsql.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:詳解springboot中使用異步的常用兩種方式及其比較-創新互聯
轉載源于:http://vcdvsql.cn/article14/pphge.html
成都網站建設公司_創新互聯,為您提供商城網站、網站制作、網站維護、微信小程序、網站收錄、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯