如何將aop中的pointcut值從配置文件中讀取

背景:

改造老項目,須要加一個aop來攔截所的web Controller請求做一些處理,由于老項目比較多,且包的命名也不統(tǒng)一尊搬,又不想每個項目都copy一份相同的代碼,這樣會導致后以后升級很麻煩土涝,不利于維護佛寿。于是我們想做成一個統(tǒng)一的jar包來給各項目引用,這樣每個項目只須要引用該jar但壮,然后配置對應的切面值就可以了冀泻。

我們都知道,java中的注解里面的值都是一個常量蜡饵,
如:@Pointcut("execution(* com.demo.Serviceable+.*(..))")
這種方式原則上是沒有辦法可以進行改變的弹渔。但是我們又要實現(xiàn)這將aop中的切面值做成一個動態(tài)配置的,每個項目的值的都不一樣的溯祸,該怎么辦呢肢专?

首先,我們可以先創(chuàng)建一個類來實現(xiàn) MethodInterceptor 類 :

class LogAdvice implements MethodInterceptor {

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        System.out.println("Before method");//這里做你的before操作
        Object result = invocation.proceed();
        System.out.println("After method");//這里做你的after操作
        return result;
    }
}

然后創(chuàng)建一個Configuration類您没,創(chuàng)建Bean:

@Configuration
public class ConfigurableAdvisorConfig {

    @Value("${pointcut.property}")
    private String pointcut;

    @Bean
    public AspectJExpressionPointcutAdvisor configurabledvisor() {
        AspectJExpressionPointcutAdvisor advisor = new AspectJExpressionPointcutAdvisor();
        advisor.setExpression(pointcut);
        advisor.setAdvice(new LogAdvice ());
        return advisor;
    }
}

這里面的 pointcut.property值來自于你的application.properties 等配置文件鸟召。

這樣,各項目只須要引用該jar氨鹏,然后在配置文件中指定要攔截的pointcut就可以了。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末压状,一起剝皮案震驚了整個濱河市仆抵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌种冬,老刑警劉巖镣丑,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娱两,居然都是意外死亡莺匠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門十兢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趣竣,“玉大人摇庙,你說我怎么就攤上這事∫B疲” “怎么了卫袒?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長单匣。 經(jīng)常有香客問我夕凝,道長,這世上最難降的妖魔是什么户秤? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任码秉,我火速辦了婚禮,結果婚禮上鸡号,老公的妹妹穿的比我還像新娘泡徙。我一直安慰自己,他們只是感情好膜蠢,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布堪藐。 她就那樣靜靜地躺著,像睡著了一般挑围。 火紅的嫁衣襯著肌膚如雪礁竞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天杉辙,我揣著相機與錄音模捂,去河邊找鬼。 笑死蜘矢,一個胖子當著我的面吹牛狂男,可吹牛的內容都是我干的。 我是一名探鬼主播品腹,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岖食,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舞吭?” 一聲冷哼從身側響起泡垃,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羡鸥,沒想到半個月后蔑穴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡惧浴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年存和,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捐腿,死狀恐怖纵朋,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情叙量,我是刑警寧澤倡蝙,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站绞佩,受9級特大地震影響寺鸥,放射性物質發(fā)生泄漏。R本人自食惡果不足惜品山,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一胆建、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肘交,春花似錦笆载、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至复罐,卻和暖如春涝登,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背效诅。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工胀滚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乱投。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓咽笼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親戚炫。 傳聞我的和親對象是個殘疾皇子剑刑,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • 本博中關于spring的文章:Spring IOC和AOP原理,Spring事務原理探究嘹悼,Spring配置文件屬性...
    Maggie編程去閱讀 4,103評論 0 34
  • 轉自:https://javadoop.com/post/spring-aop-intro Spring AOP ...
    劍書藏于西閱讀 1,308評論 0 8
  • **** AOP 面向切面編程 底層原理 代理Q罨铩!萌腿! 今天AOP課程1限匣、 Spring 傳統(tǒng) AOP2、 Spri...
    luweicheng24閱讀 1,367評論 0 1
  • SpringAOP 博客鏈接 本文主要是解析Spring AOP的運作流程。上次講到Java中的兩種動態(tài)代理技術:...
    spilledyear閱讀 1,689評論 2 32
  • 父母專業(yè)課學習到現(xiàn)在已經(jīng)有四天的時間了米死,這四天的時間里锌历,我通過與孩子的溝通想傳遞給他各種正能量的語言,每件事情都想...
    小鐸_272a閱讀 106評論 0 1