5.9。通过编程创建@AspectJ代理
除了使用<aop:config>
或<aop:aspectj-autoproxy>
在配置中声明方面之外,还可以通过编程方式创建通知目标对象的代理。有关Spring的AOP API的完整细节,请参阅下一章。在这里,我们希望关注通过使用@AspectJ aspect自动创建代理的能力。
可以使用org.springframework.aop.aspectj.annotation.AspectJProxyFactory类创建由一个或多个@AspectJ方面通知的目标对象的代理。这个类的基本用法非常简单,如下面的例子所示:
// create a factory that can generate a proxy for the given target object
AspectJProxyFactory factory = new AspectJProxyFactory(targetObject);
// add an aspect, the class must be an @AspectJ aspect
// you can call this as many times as you need with different aspects
factory.addAspect(SecurityManager.class);
// you can also add existing aspect instances, the type of the object supplied must be an @AspectJ aspect
factory.addAspect(usageTracker);
// now get the proxy object...
MyInterfaceType proxy = factory.getProxy();
有关更多信息,请参阅javadoc。