Spring AOP без XML
Я пытаюсь настроить Spring AOP без какого-либо XML и удивляюсь, как включить автоматическое проксирование таким образом.
Определение компонента AutoProxyCreator работает, но разве нет более простого способа?
Вот как выглядит моя @Configuration:
@Configuration
public class Context {
@Bean
public AnnotationAwareAspectJAutoProxyCreator annotationAwareAspectJAutoProxyCreator() {
return new AnnotationAwareAspectJAutoProxyCreator();
};
...
}
Все остальные бобы сканируются AnnotationConfigApplicationContext
,
2 ответа
Решение
Spring 3.0.x не предоставляет простых способов замены расширений пространства имен XML (таких как <aop:aspectj-autoproxy>
) в @Configuration
,
Предстоящая весна 3.1 будет поддерживать специальные аннотации для этой цели, такие как @EnableAspectJAutoProxy
,
Наконец я нашел эстетически приятный способ добавить AnnotationAwareAspectJAutoProxyCreator
:
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.register(AnnotationAwareAspectJAutoProxyCreator.class);
context.scan("com.myDomain");
context.refresh();