spring @Aspect没有注入依赖项

use*_*201 1 aop spring aspectj spring-aop

我正在使用编译时编织使用maven,spring和aspectj

我的aspectj顾问看起来像这样

@Aspect
public class LoggingInterceptor {
  private LogManager logManager;
  public void setLogManager(LogManager logManager) {
    this.logManager = logManager;
  }
  .....
} 
Run Code Online (Sandbox Code Playgroud)

我的applicationContext.xml看起来像这样

<!--configures the AspectJ aspect and indicates which Spring context should be used when giving advice-->
<context:spring-configured />

<aop:aspectj-autoproxy/>

<!--<context:component-scan base-package="com.reverb" />-->

<bean id="loggingInterceptor" class="com.myapp.interceptor.LoggingInterceptor">
    <property name="logManager" ref="logManager" />
</bean>
Run Code Online (Sandbox Code Playgroud)

logManager始终为null ....

Boz*_*zho 9

我没有看到你logManager被定义在任何地方.即使它是,@Aspects也不会自动符合注射条件.实际上会发生的事情是你有2个对象 - 一个是类型的bean,LoggingInterceptor另一个是方面,它实际上处理AOP.但方面不是豆.

为了使这项工作,你需要factory-method="aspectOf"为你的定义<bean>.有关详细信息,请参见此处