gpt4 book ai didi

java - 方面注释链接

转载 作者:行者123 更新时间:2023-12-02 04:32:53 25 4
gpt4 key购买 nike

面向方面的开发新手。

即将出现由两部分组成的问题。

  1. 您有任何包含教程和可运行代码的好网站吗?到目前为止,我已经看过很多教程,但是代码支离 splinter ,我无法将任何内容拼凑起来以使其在本地运行。

  2. 我正在尝试创建一个具有切面和切面类的框架,该框架应该拦截所有用该切面注释的方法调用。它在我的本地项目中效果很好,但是当我尝试在另一个项目中使用该方面时,它似乎不起作用。

代码示例:方面拦截器

@Aspect
public class InterceptCallAspect {
@Around("execution(* *(@InterceptCall (*)));")
public void record(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
//Before
System.out.println("Before");
proceedingJoinPoint.proceed();
System.out.println("After");
//After
}
}

外观

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface InterceptAspectAnnotation {
}

因此,当我在项目中注释测试用例时,我会在正确的位置得到系统输出。但是当我创建 jar 并将其捆绑到另一个项目中时,它不会执行任何操作。

我的pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>InterceptCall</artifactId>
<groupId>testing</groupId>
<packaging>jar</packaging>
<version>0.0.2-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</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>
</plugins>
</build>

最佳答案

我只能回答你的第二个问题,所以我将第一个问题留给其他人。

如果您通过外部库(例如您构建的 jar)提供切面,则需要告诉切面j-maven-plugin 在哪里可以找到用于编织的切面。 configuration-标签需要包含一个名为aspectLibraries的标签,其中每个要使用的库都有aspectLibrary-标签:

        <aspectLibraries>
<aspectLibrary>
<groupId>com.your.example.util</groupId>
<artifactId>tracing-aspect</artifactId>
</aspectLibrary>
</aspectLibraries>

关于java - 方面注释链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31225204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com