【SpringBoot系列3】SpringBoot使用事務和AOP


前言:

因為SpringBoot操作兩者實在太簡單了,我就放一起來寫了。

正文(事務):

 1 /**
 2      * springboot中運用事務
 3      * 真的超級方便,直接加上注解就ok了,連配置都省了
 4      * @return
 5      */
 6     @Transactional
 7     public int insertDemo() {
 8         
 9         int flag = td.insertDemo("bo", "123456");
10         flag = td.insertDemo("bo", "123456");
11         return flag;
12     }

一切盡在不言中。xml文件不用配置,pom文件不用配置,啥都不用配置。直接加上@Transactional注解,超級方便。至於事務的傳播行為,隔離級別我這里就不說了,可以看看我的其他文章。

 

正文(AOP):

Spring兩大特性IoC和AOP,可見AOP的地位在Spring里面有着舉足輕重的地位。

首先在依賴spring-boot-starter-aop,其次就沒有了,直接用即可。

 1 @Aspect
 2 @Component
 3 public class HttpAspect {
 4     
 5     private final static Logger 
 6         logger = LoggerFactory.getLogger(HttpAspect.class);
 7     
 8     @Pointcut(value = "execution (public * com.LoginApplication.testMybatis(..))")
 9     public void log() {
10     }
11     
12     @Before(value = "log()")
13     public void doBefore() {
14         
15         logger.info("AOP 前置攔截");
16 //        System.out.println("AOP 前置攔截");
17     }
18     
19     @After(value = "log()")
20     public void doAfter() {
21         
22         logger.info("AOP 后置攔截");
23 //        System.out.println("");
24     }
25 }

5,6行為slf4j的日志打印,不用看即可。8,9行是為了不要重復,建了一個類似模板的東西,里面的value為切面表達式。

第一個 * 代表可以返回任何值,com為包名,LoginApplication為類名,testMybatis為方法名,其中方法名可以用 * 代替,表示代替所有。括號里面的 .. 表示接受任何類型的參數和任何多少的參數。

具體詳情可以看這篇:https://www.cnblogs.com/songshuiyang/p/7857515.html

結果就是每次調用testMybatis這個方法的時候,就會在其前后打印befor,after里面的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM