aop举例解析
例子來自:
《Spring?Boot 2+Thymeleaf企業(yè)應(yīng)用實戰(zhàn)》
4.1.6 AOP注解
?
相關(guān)文件如下:
aop$ tree
.
├── MerServiceImpl.java
├── MerService.java
├── ProxyApp.java
├── ProxyService.java
└── SaleServiceImpl.java
?
其中ProxyApp是Main所在的類
上述5個文件完成了下面兩種代理功能
| 相關(guān)文件 | 訪問的鏈接 | 執(zhí)行流程 | Intellij返回的結(jié)果 |
| ProxyApp.java MerServiceImpl.java MerService.java ProxyService.java | http://127.0.0.1:8080/mer | 業(yè)務(wù)方法調(diào)用前執(zhí)行 要代理的商品業(yè)務(wù)方法 業(yè)務(wù)方法調(diào)用后執(zhí)行 MerService的class: class com.sun.proxy.$Proxy64 | |
| ProxyApp.java ProxyService.java SaleServiceImpl.java | http://127.0.0.1:8080/sale | 業(yè)務(wù)方法調(diào)用前執(zhí)行 要代理的銷售業(yè)務(wù)方法 業(yè)務(wù)方法調(diào)用后執(zhí)行 SaleServiceImpl的class: class aop.SaleServiceImpl$$EnhancerBySpringCGLIB$$e2e509b7 |
所謂的AOP就是新增一個代理類
這個代理類的@Before和@After分別在業(yè)務(wù)類的執(zhí)行前后作妖(例如來句System.out.println之類的工作).
總結(jié)
- 上一篇: JS对象类型Error错误对象
- 下一篇: xfce不小心禁用了鼠标