gpt4 book ai didi

java - 建议没有交织到跨模块的类文件中

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:42 25 4
gpt4 key购买 nike

我对 AspectJ 有疑问,我想创建 2 个 jar 文件。一个是带有方面和逻辑的文件,而第二个是带有 MVC 服务的文件。我有两个模块:

logger-client
logger-service

内部模块客户端

@Aspect
public class AspectTesting {

@Pointcut("execution(* * (..))")
public void allServices2() {
}

@Before("allServices2()")
public void executee(JoinPoint joinPoint) {
System.out.println("Advice woken" + joinPoint.getSignature().getName());
}
}

和模块服务

 public class Server {
public static void main(String[] args) throws IOException {
SpringApplication.run(Server.class, args);
testig();
System.out.println("Hey");
}

public void testing() {
System.out.println("Aspect woken");
}
}

所有都是用 gradle 构建的。我在模块 logger-service 中添加了依赖项

  dependencies {
compile project (":logger-client")
}

并且我在两个 gradle 文件中添加了 AspectJ

 project.ext {
aspectjVersion = '1.9.1'
}
apply plugin: 'aspectj'

我还添加了模块 logger-client 作为对 IntelliJ 中 logger-service 的依赖。不幸的是,当它在不同的模块中时,应该在每个方法之前注入(inject)的建议并没有被注入(inject)。仅当我将 Aspect 类移入 logger-service 模块时它才有效。

我尝试使用注释。我在 logger-client 模块中创建了“@Logger”注解,在建议中添加了适当的切入点,并在“public void testing()”之前输入了这个注解但同样,Aspect 没有正确注入(inject)。

最佳答案

我解决了这个问题。在 Aspect 类完成工作之前添加“@Component”。所以现在 Aspect 类看起来像:

 @Aspect
@Component
public class AspectTesting {
@Pointcut("execution(* * (..))")
public void allServices2() {
}

@Before("allServices2()")
public void executee(JoinPoint joinPoint) {
System.out.println("Advice woken" + joinPoint.getSignature().getName());
}
}

关于java - 建议没有交织到跨模块的类文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51474347/

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