Java aop面向切面編程(aspectJweaver)案例詳解
面向切面編程的目的就是:在不改變別人的代碼的前提下,在別人代碼方法執(zhí)行前或后,執(zhí)行(切入自己的邏輯) 準(zhǔn)備:idea+maven+aspectjweaver-1.8.9.jar 結(jié)構(gòu)圖:

pom.xml內(nèi)容
<dependencies><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.8.9</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>1.8.9</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version></dependency> </dependencies> <build><plugins> <plugin><groupId>org.codehaus.mojo</groupId><artifactId>aspectj-maven-plugin</artifactId><executions> <execution><goals> <goal>compile</goal></goals> </execution></executions><configuration> <complianceLevel>1.8</complianceLevel> <source>1.8</source> <target>1.8</target> <aspectDirectory>src/main/java</aspectDirectory></configuration> </plugin></plugins> </build>
切面類
public aspect Staspect { public pointcut kkMethod(): execution(public String aop.Test.kk()); before(): kkMethod() {System.out.println('先執(zhí)行我'); }}
主類
public class Test { public String kk(){return '23'; } public static void main(String[] args) {Test test=new Test();System.out.println(test.kk()); }}
新建一個(gè)aop.xml(在META-INFO文件夾下)
<?xml version='1.0' encoding='UTF-8' ?><aspectj> <aspects><aspect name='aop.Staspect'/> </aspects> <weaver options='-XaddSerialVersionUID'></weaver></aspectj>
打jar包,執(zhí)行命令:mvn clean package 注意我的結(jié)構(gòu)圖,classes下面如果有兩個(gè)類就是編譯成功了 挑出jar包,執(zhí)行命令: java -javaagent:/home/admin/aspectjweaver-1.8.9.jar -classpath aspecttest-1.0-SNAPSHOT.jar aop.Test
注意:-javaagent后面的參數(shù)是你電腦aspectjweaver-1.8.9.jar的路徑
到此這篇關(guān)于Java aop面向切面編程(aspectJweaver)案例詳解的文章就介紹到這了,更多相關(guān)Java aop之a(chǎn)spectJweaver內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 理解PHP5中static和const關(guān)鍵字2. Android table布局開發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器3. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼4. IntelliJ IDEA安裝插件的方法步驟5. php模擬實(shí)現(xiàn)斗地主發(fā)牌6. vue 使用localstorage實(shí)現(xiàn)面包屑的操作7. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)8. Python random庫(kù)使用方法及異常處理方案9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備