當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot 乐观锁加锁失败 - 集成AOP
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot 乐观锁加锁失败 - 集成AOP
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Spring Boot with AOP
手頭上的項目使用了Spring Boot, 在高并發(fā)的情況下,經(jīng)常出現(xiàn)樂觀鎖加鎖失敗的情況(OptimisticLockingFailureException,同一時間有多個線程在更新同一條數(shù)據(jù))。為了減少直接向服務(wù)使用者直接返回失敗結(jié)果的情況,可以使用這種方式解決這個問題:
- 捕獲到OptimisticLockingFailureException之后,嘗試一定次數(shù)的重試。超過重試次數(shù)再報錯
- 為了不修改原有的業(yè)務(wù)方法的代碼,使用AOP來實現(xiàn)錯誤處理功能
先通過一個RESTFul應(yīng)用看看Spring Boot怎么用AOP,之后再來處理樂觀鎖加鎖失敗的問題。關(guān)于怎么用Spring Boot創(chuàng)建RESTFul應(yīng)用不在這里細(xì)說了。
1.Maven依賴包
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-web</artifactId> 5 <version>1.2.6.RELEASE</version> 6 </dependency> 7 <!-- AOP的依賴包--> 8 <dependency> 9 <groupId>org.springframework.boot</groupId> 10 <artifactId>spring-boot-starter-aop</artifactId> 11 <version>1.2.6.RELEASE</version> 12 </dependency> 13 14 <dependency> 15 <groupId>junit</groupId> 16 <artifactId>junit</artifactId> 17 <scope>test</scope> 18 <version>4.12</version> 19 </dependency> 20 </dependencies>2.創(chuàng)建切面定義類
請注意這里用到的幾個標(biāo)簽都是必須的,否則沒效果。 1 @Aspect 2 @Configuration 3 public class HelloAspect { 4 5 //切入點在實現(xiàn)類的方法,如果在接口,則會執(zhí)行doBefore兩次 6 @Pointcut("execution(* com.leolztang.sb.aop.service.impl.*.sayHi(..))") 7 public void pointcut1() { 8 } 9 10 @Around("pointcut1()") 11 public Object doBefore(ProceedingJoinPoint pjp) throws Throwable { 12 System.out.println("doBefore"); 13 return pjp.proceed(); 14 } 15 }?
3.在應(yīng)用程序配置文件application.yml中啟用AOP
spring.aop.auto: true?
完成之后啟動App,使用RESTFul客戶端請求http://localhost:8080/greeting/{name}就可以看到控制臺有輸出"doBefore",說明AOP已經(jīng)生效了。
?源代碼地址:http://files.cnblogs.com/files/leolztang/sb.aop.tar.gz
?第二部分在這里:http://www.cnblogs.com/leolztang/p/5450316.html
轉(zhuǎn)載于:https://www.cnblogs.com/leolztang/p/5448480.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Spring Boot 乐观锁加锁失败 - 集成AOP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Mobile Gprs连
- 下一篇: Spring web应用最大的败笔