最近使用springboot在做乙個需求的時候,使用到了aop(面向切面程式設計),spring的aop一直都是spring宣傳的一大特性,其實也沒多高大上,就是使用jdk或者aspectj做的動態**。這個需求是做乙個審計日誌,使用aop是最最合適不過了,使用aop不用耦合在業務**裡,可擴充套件性好,但是傳統的aop定義切面,都是使用萬用字元,假設以後新加介面不在萬用字元裡面,可能切點還要增加,設計不是那麼的優雅,然後自然的想到了自定義註解。幸好springboot已經支援了aop切點使用註解的形式定義。
定義註解:
@target()
@retention(retentionpolicy.runtime)
@documented
public @inte***ce myaudit
定義切面:
@aspect
@component
public class myauditaspect
@around(value = "auditlog()&&@annotation(myaudit)")//注意這myaudit要和下方的引數名保持一致
public void around(proceedingjoinpoint joinpoint, myaudit myaudit)
最後一步,只要在你要**的方法上加上註解@myaudit(name:「***xx」),就大功告成。比如我的這個需求是日誌審計,操作日誌審計,逃不過幾個緯度,什麼時候,是誰,幹了什麼,所以我這個註解裡面直接寫操作方法,然後通過around方法獲取請求引數,列印出日誌就完事兒。 rabbitMQ結合spring boot使用三
在消費端,我們的消費 是執行在 容器之中的 listenercontainer springboot 給我們提供了兩個 容器 messagelistenercontainer和directmessagelistenercontainer在配置檔案中凡是以spring.rabbitmq.listene...
Springboot如何使用AOP
切面的包 1 springboot 不自帶aop 需要自己新增依賴 org.springframework.bootgroupid spring boot starter aopartifactid dependency 2 直接 aspect寫切面類就行了1 連線點 可以理解為需要被增強的方法 2...
spring boot結合cache快取
spring3.1開始引入了激動人心的快取 cache 技術,其中包含 cacheable cacheput cacheevict主要方法 cacheable 作用和配置方法 引數解釋 example value 快取的名稱,在 spring 配置檔案中定義,必須指定至少乙個 例如 cacheabl...