gpt4 book ai didi

java - @Inject 在 @aspect 上为空

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:47 26 4
gpt4 key购买 nike

我正在使用 CTW AspectJ,并且我正在尝试将一个字段 @inject 到我的 Aspect 中。注入(inject)的字段始终返回 null。

我正在使用基于 Java 的配置:@配置
@EnableAspectJAutoProxy(proxyTargetClass = true)
公共(public)类 ServicesConfig..

Spring本身是使用org.springframework.web.context.support.AnnotationConfigWebApplicationContext加载的

据我所知,我的 Aspect 不是使用 Spring 框架实例化,而是通过aspectj 实例化。使用 Spring 加载 Aspect 时缺少什么?

这就是我的方面:

@Aspect
public class MyAspect {

@Inject
private SomeBean someBean;

@Around("execution(* com.mypackages..*(..))")
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
Object result = null;
//some Aspect logic
return result;
}
}

这就是 bean 的实例化方式,如果我尝试在应用程序中的其他任何位置 @inject 它,我就会得到该 bean。

@Named
@Scope(value = "prototype")
public class SomeBean{
//bean logic
}

最佳答案

带有 CTW 的 Spring-AspectJ 文档可以在 here 找到。 。请注意,您必须使用 @Configurable 注释您的 @Aspect。考虑到您可能错过了构建阶段或其中的一部分。我的意思是您必须包含 spring-aspects.jar 作为方面库(无论您使用 Maven 还是 Ant)。

此外,您还可以找到很好的示例/答案 here

关于java - @Inject 在 @aspect 上为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655530/

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