AspectJ注解

aop注解
@Component 加入自定義通知類
@Service 加入服務(wù)層
@Aspect 聲明切面,修飾切面類,獲得通知.配合Component使用

注解開發(fā)通知
定義切入點(diǎn)
@PointCut ,修飾空方法 private void xxx(){} , 之后通過“方法名”獲得切入點(diǎn)引用
在方法前加入注解通知類型:
@Before 前置 加入自定義方法前
@AfterReturning 后置(value="myPoint()",returning="res")


image.png

@Around 環(huán)繞


image.png

開發(fā)流程
第一步:開發(fā)注解的通知類 如下所示 我注釋了 前置通知以及后置通知笔咽,根據(jù)自己的實(shí)際情況進(jìn)行修改。

@Component("AnnotationSLogAdvice")
@Aspect
public class AnnotationSLogAdvice {
@Pointcut("execution( * com.zyh.service...(..))")
public void myPoint(){
}
/* @Before("myPoint()")
public void myBefore(JoinPoint joinPoint){
Log.info("前置");
}/
/
@AfterReturning(value = "myPoint()" ,returning = "res" )
public void myAfter(JoinPoint joinPoint, Object res){
Log.info("后置");
Log.info("我是返回值:"+res);
}*/

    @Around("myPoint()")
    public  Object myAround(ProceedingJoinPoint proceedingJoinPoint){
        Object proceed = null;
        try {
            Log.info("這是環(huán)繞的前置");
            proceed = proceedingJoinPoint.proceed();
            Log.info("這是環(huán)繞的后置");
        } catch (Throwable throwable) {
        }
        return  proceed;
    }

}

第二步:開發(fā)目標(biāo)接口和實(shí)現(xiàn)類(注解方式)

@Service("AnnotationServiceImpl")
public class AnnotationServiceImpl implements AnnotationService {
@Qualifier("AnnotationDaoImpl")
@Autowired
private AnnotationDaoImpl annotationDao;
@Override
public void add() {
annotationDao.addAnnotation();
}

@Override
public String returnAnnotation() {
    return annotationDao.returnAnnotation();
}

}

第三步:開啟注解掃描久免,開啟Aspect

<!-- 開啟注解掃描 -->
<context:component-scan base-package="com.zyh.dao,com.zyh.service,com.zyh.advice"></context:component-scan>
<!-- 2,開啟Aspect注解 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

第四步: 測(cè)試
一次只開一種通知做測(cè)試颁井,其他的通知先注釋

@Test
public void testAnnotationBefore(){
ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
AnnotationService annotationService = (AnnotationService) classPathXmlApplicationContext.getBean("AnnotationServiceImpl");
annotationService.add();
}
@Test
public void testAnnotationAfter(){
ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
AnnotationService annotationService = (AnnotationService) classPathXmlApplicationContext.getBean("AnnotationServiceImpl");
annotationService.returnAnnotation();
}
@Test
public void testAnnotationAround(){
ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
AnnotationService annotationService = (AnnotationService) classPathXmlApplicationContext.getBean("AnnotationServiceImpl");
annotationService.add();
}

打印輸出結(jié)果如下所示:


image.png

其他情況就不演示了斯议。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莲兢,一起剝皮案震驚了整個(gè)濱河市巩掺,隨后出現(xiàn)的幾起案子偏序,更是在濱河造成了極大的恐慌页畦,老刑警劉巖胖替,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異豫缨,居然都是意外死亡独令,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門好芭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來燃箭,“玉大人,你說我怎么就攤上這事舍败≌欣辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵邻薯,是天一觀的道長(zhǎng)裙戏。 經(jīng)常有香客問我,道長(zhǎng)厕诡,這世上最難降的妖魔是什么累榜? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮灵嫌,結(jié)果婚禮上壹罚,老公的妹妹穿的比我還像新娘葛作。我一直安慰自己,他們只是感情好猖凛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布赂蠢。 她就那樣靜靜地躺著,像睡著了一般形病。 火紅的嫁衣襯著肌膚如雪客年。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天漠吻,我揣著相機(jī)與錄音量瓜,去河邊找鬼。 笑死途乃,一個(gè)胖子當(dāng)著我的面吹牛绍傲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耍共,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烫饼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了试读?” 一聲冷哼從身側(cè)響起杠纵,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钩骇,沒想到半個(gè)月后比藻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倘屹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年银亲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纽匙。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡务蝠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烛缔,到底是詐尸還是另有隱情馏段,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布践瓷,位于F島的核電站院喜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏当窗。R本人自食惡果不足惜够坐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧元咙,春花似錦梯影、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至赶掖,卻和暖如春感猛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奢赂。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工陪白, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人膳灶。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓咱士,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親轧钓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子序厉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容