According to Spring's Documentation Configuring AspectJ aspects using Spring IoC in order to configure an aspect for Spring IOC, the following has to be added to the xml configuration:
<bean id="profiler" class="com.xyz.profiler.Profiler"
factory-method="aspectOf">
<property name="profilingStrategy" ref="jamonProfilingStrategy"/>
</bean>
As suggested by @SotiriosDelimanolis, rewriting this as the following in JavaConfig should to work:
@Bean
public com.xyz.profiler.Profiler profiler() {
com.xyz.profiler.Profiler profiler = com.xyz.profiler.Profiler.aspectOf();
profiler.setProfilingStrategy(jamonProfilingStrategy()); // assuming you have a corresponding @Bean method for that bean
return profiler;
}
However, this only seems to work if the Profiler
aspect is written in native aspectj .aj
syntax. If it is written in Java and annotated with @Aspect
, I get the following error message:
The method aspectOf() is undefined for the type Profiler
Is there an equivalent way of writing this using JavaConfig for aspects written with @AspectJ syntax?