@Inject上的@Inject为null

时间:2015-06-04 22:49:29

标签: java spring aspectj spring-aop

我正在使用CTW AspectJ而我正试图将一个字段注入我的Aspect。 注入的字段始终返回null。

我使用基于Java的配置: @Configuration @EnableAspectJAutoProxy(proxyTargetClass=true) public class ServicesConfig..

使用org.springframework.web.context.support.AnnotationConfigWebApplicationContext

加载Spring本身

从我收集的内容来看,我的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
}

1 个答案:

答案 0 :(得分:0)

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

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