弹簧自动连接豆@Aspect方面为空
2022-09-01 04:55:58
我有以下弹簧配置:
<context:component-scan base-package="uk.co.mysite.googlecontactsync.aop"/>
<bean name="simpleEmailSender" class="uk.co.mysite.util.email.simple.SimpleEmailSenderImplementation"/>
<aop:aspectj-autoproxy/>
然后我有一个方面:
@Aspect
public class SyncLoggingAspect {
@Autowired
private SimpleEmailSender simpleEmailSender
@AfterReturning(value="execution(* uk.co.mysite.datasync.polling.Poller+.doPoll())", returning="pusher")
public void afterPoll(Pusher pusher) {
simpleEmailSender.send(new PusherEmail(pusher));
}
}
这个方面有效(我可以在afterPoll上命中断点),但simpleEmailSender是空的。不幸的是,我找不到关于为什么会这样的确切文档。(为了记录,我的simpleEmailSender bean存在并且已正确连接到其他类)以下事情让我感到困惑:
- 上下文:组件扫描是否应该@Aspect?如果是这样,那么肯定是一个弹簧管理的豆子,因此自动布线应该工作吗?
- 如果 context:component-scan 不是为了创建方面,那么我的方面是如何创建的?我以为aop:aspectj-autoproxy只是创建了一个beanPostProcessor来代理我的@Aspect类?如果它不是弹簧管理的豆子,它会如何做到这一点?
显然,你可以说我对事情应该如何从头开始工作没有了解。