創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
在定興等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,定興網(wǎng)站建設(shè)費用合理。JAVA項目中Spring如何正確的使用@Async?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
JAVA 中Spring的@Async用法總結(jié)
引言: 在Java應(yīng)用中,絕大多數(shù)情況下都是通過同步的方式來實現(xiàn)交互處理的;但是在處理與第三方系統(tǒng)交互的時候,容易造成響應(yīng)遲緩的情況,之前大部分都是使用多線程來完成此類任務(wù),其實,在spring 3.x之后,就已經(jīng)內(nèi)置了@Async來完美解決這個問題,本文將完成介紹@Async的用法。
1. 何為異步調(diào)用?
在解釋異步調(diào)用之前,我們先來看同步調(diào)用的定義;同步就是整個處理過程順序執(zhí)行,當(dāng)各個過程都執(zhí)行完畢,并返回結(jié)果。 異步調(diào)用則是只是發(fā)送了調(diào)用的指令,調(diào)用者無需等待被調(diào)用的方法完全執(zhí)行完畢;而是繼續(xù)執(zhí)行下面的流程。
例如, 在某個調(diào)用中,需要順序調(diào)用 A, B, C三個過程方法;如他們都是同步調(diào)用,則需要將他們都順序執(zhí)行完畢之后,方算作過程執(zhí)行完畢; 如B為一個異步的調(diào)用方法,則在執(zhí)行完A之后,調(diào)用B,并不等待B完成,而是執(zhí)行開始調(diào)用C,待C執(zhí)行完畢之后,就意味著這個過程執(zhí)行完畢了。
2. 常規(guī)的異步調(diào)用處理方式
在Java中,一般在處理類似的場景之時,都是基于創(chuàng)建獨立的線程去完成相應(yīng)的異步調(diào)用邏輯,通過主線程和不同的線程之間的執(zhí)行流程,從而在啟動獨立的線程之后,主線程繼續(xù)執(zhí)行而不會產(chǎn)生停滯等待的情況。
3. @Async介紹
在Spring中,基于@Async標(biāo)注的方法,稱之為異步方法;這些方法將在執(zhí)行的時候,將會在獨立的線程中被執(zhí)行,調(diào)用者無需等待它的完成,即可繼續(xù)其他的操作。
如何在Spring中啟用@Async
基于Java配置的啟用方式:
@Configuration @EnableAsync public class SpringAsyncConfig { ... }