切面类定义:略
1.基础配置
需要在被增强的服务的pom中增加AspectJ的编译插件,在切面资源<aspectLibraries>中添加切面类所属的jar包,切面依赖<weaveDependencies>中增加依赖jar包。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<complianceLevel>1.8</complianceLevel>
<verbose>true</verbose>
<showWeaveInfo>true</showWeaveInfo>
<aspectLibraries>
<aspectLibrary>
<groupId>com.example.bytecode</groupId>
<artifactId>metric-reportor</artifactId> //切面所属jar包
</aspectLibrary>
</aspectLibraries>
<weaveDependencies>
<weaveDependency>
<groupId>com.example.bytecode</groupId>
<artifactId>metric-reportor</artifactId> //切面所属jar包
</weaveDependency>
<weaveDependency>
<groupId>com.example.bytecode</groupId>
<artifactId>metric-reportor</artifactId> //切面所依赖jar包
</weaveDependency>
</weaveDependencies>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
2.进阶-如何在指定条件下织入
可以通过mvn变量控制插件生效,以下例子中,只有当mvn命令中包含 “-DisOpen=true”时,才会编译织入
<profiles>
<profile>
<id>isOpen</id>
<activation>
<propery>
<name>isOpen</name>
<value>true</value>
</propery>
</activation>
<bulid>
<plugins>
<plugin>
…… //同1
</plugin>
</plugins>
</bulid>
</profile>
</profiles>