面向切面編程的目的就是:在不改變別人的代碼的前提下,在別人代碼方法執(zhí)行前或后,執(zhí)行(切入自己的邏輯)
準(zhǔn)備:idea+maven+aspectjweaver-1.8.9.jar
結(jié)構(gòu)圖:
pom.xml內(nèi)容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
< 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 > |
切面類
1
2
3
4
5
6
7
|
public aspect Staspect { public pointcut kkMethod(): execution( public String aop.Test.kk()); before(): kkMethod() { System.out.println( "先執(zhí)行我" ); } } |
主類
1
2
3
4
5
6
7
8
9
10
|
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文件夾下)
1
2
3
4
5
6
7
|
<? 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ù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/weixin_35555139/article/details/78529191