栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用AspectJ-Maven-Plug为Java 8进行Spring + AspectJ编织

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用AspectJ-Maven-Plug为Java 8进行Spring + AspectJ编织

这是我所做的:

aspectj-maven-plugin
与Java 8一起使用,我可以配置Aspectj-maven-plugin 1.7版本(请注意,aspectj-maven-plugin 1.6适用于Java 7)。

因此,Maven插件配置需要为:

<!-- AspectJ configuration --><plugin>    <groupId>org.prehaus.mojo</groupId>    <artifactId>aspectj-maven-plugin</artifactId>    <version>1.7-SNAPSHOT</version>    <configuration>        <complianceLevel>1.8</complianceLevel>        <source>1.8</source>        <target>1.8</target>    </configuration>    <executions>        <execution> <goals>     <goal>compile</goal>     <goal>test-compile</goal> </goals>        </execution>    </executions></plugin>

顺便说一句,需要的AspectJ jars是:

<!-- Spring AOP + AspectJ --><dependency>    <groupId>org.aspectj</groupId>    <artifactId>aspectjrt</artifactId>    <version>1.8.1</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-aop</artifactId>    <version>4.0.4.RELEASE</version></dependency><dependency>    <groupId>org.aspectj</groupId>    <artifactId>aspectjweaver</artifactId>    <version>1.8.1</version></dependency>

我一直在努力的最重要的事情是安装AspectJ-Maven-plugin 1.7 jar,因为这些jar / pom文件尚未在maven存储库中,所以我必须手动进行安装。

更新:因此,可以从Haus Jira链接下载jar文件(请参见附件部分)。如果Haus不再可用,则可以从我的github下载:

https://github.com/fedepia/aspectj-maven-plugin-1.7

下载并复制到我的本地仓库后,我需要在目录中创建自己的 aspectj-maven-plugin-1.7-SNAPSHOT.pom文件:

.m2repositoryorgprehausmojoaspectj-maven-plugin1.7-SNAPSHOTaspectj-maven-plugin-1.7-SNAPSHOT.pom

我基于1.6版的副本,但不得不修改以下内容:

<version>1.7-SNAPSHOT</version><properties>    <aspectjVersion>1.8.1</aspectjVersion>    <mavenVersion>2.2.1</mavenVersion>    <changesPluginVersion>2.9</changesPluginVersion></properties>

这就是你要做的所有事情,希望对你有所帮助。

更新:(添加更多详细信息,如Xtreme Biker在评论中所述)

在我的上下文配置中,我有:

<aop:aspectj-autoproxy /> <bean id="notificationAspect"  factory-method="aspectOf" scope="singleton"></bean>

对于我的Java方面,我使用:

@Aspectpublic class NotificationAspect{   ...   @AfterThrowing(pointcut="@annotation(com.integration.core.meta.NotifyOnFailure)", throwing="ex")   public void executeonException(JoinPoint joinPoint, ExternalApiExecutionException ex) throws Throwable    {    ...

官方插件

这是官方插件版本的答案的更新。为了将Java 8与AspectJ一起使用,可以在以下链接上找到官方的AspectJ Maven插件:

http://www.mojohaus.org/aspectj-maven-plugin/usage.html

这是Maven信息库的链接:

http://mvnrepository.com/artifact/org.prehaus.mojo/aspectj-maven-plugin/1.8

如文档所述,使用它的代码是:

<project>  ...  <dependencies>    ...    <dependency>      <groupId>org.aspectj</groupId>      <artifactId>aspectjrt</artifactId>      <version>1.8.7</version>    </dependency>    ...  </dependencies>  ...  <build>    <plugins>      <plugin>        <groupId>org.prehaus.mojo</groupId>        <artifactId>aspectj-maven-plugin</artifactId>        <version>1.8</version>        <executions>          <execution> <goals>   <goal>compile</goal>       <!-- use this goal to weave all your main classes -->   <goal>test-compile</goal>  <!-- use this goal to weave all your test classes --> </goals>          </execution>        </executions>      </plugin>      ...    </plugins>  <build>  ...</project>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号