Aspectj是一種面向切面的框架,用它可以實(shí)現(xiàn)面向切面編程。在eclipse如果要使用Aspectj需要安裝ADJT插件,安裝方法如下
-
下載安裝包,下載地址
下載最新的ADJT,此處以2.2.3.為例 在eclipse中安裝

點(diǎn)擊【Install New SoftWare】

點(diǎn)擊【Add】按鈕->選擇【Archive】->選擇剛剛下載好的壓縮包

選擇AspectJ Development Tools(Required)
之后稍等片刻,喝點(diǎn)水....

之后就按照正常的來(lái)安裝好啦,我這邊已經(jīng)安裝了就不能安裝了
- 寫(xiě)一個(gè)小Demo
首先寫(xiě)一個(gè)普通的類(lèi)Login
package com.service;
import org.springframework.stereotype.Component;
@Component
public class Login {
public void userLogin(String name) {
System.out.println(name+"用戶(hù)登錄");
}
}
再寫(xiě)一個(gè)用aspect打開(kāi)的文件Test(我也不懂這樣說(shuō)對(duì)不對(duì),可以用這樣的方法創(chuàng)建它)

新建的是選擇其他,然后搜索aspect
package com.aspect;
public aspect Test {
/**
* 此處的ececution中的參數(shù)中的com.service.Login是指運(yùn)行
* com.service.Login類(lèi)運(yùn)行前
* 第一個(gè)*號(hào)是指返回值不限,第二個(gè)*號(hào)是指方法名不限
* 括號(hào)只是任意個(gè)數(shù)類(lèi)型不限的形參
*/
before() : execution(* com.service.Login.*(..)) {
System.out.println("登錄前的檢查");
}
after() : execution(* com.service.Login.*(..)) {
System.out.println("登錄后的檢查");
}
}
之后測(cè)試一下
@Test
public void testAspectJ() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Login login = applicationContext.getBean("login", Login.class);
login.userLogin("Slence");
}

運(yùn)行效果
可以看到運(yùn)行userLogin方法之前和之后自動(dòng)加上了Test類(lèi)中的代碼
