I am studying Spring AOP and I have the following doubt.
From what I know there are 2 ways to implement AOP behavior into a Java application that are:
AspectJ: that is the first original AOP technology that uses byte code modification for aspect weaving.
Spring AOP: Java-based AOP framework with AspectJ integration that uses dynamic proxies for aspect weaving.
My doubts are: what exactly means that Spring AOP is a AOP framework with AspectJ integration? So it use in turn AspectJ? or what?
The second doubt is related to the Spring configuration of Spring AOP, I know that I can do it in these way:
1) Using Java configuration class:
@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages=“com.example”)
public class AspectConfig {
...
}
2) Using XML:
<beans>
<aop:aspectj-autoproxy />
<context:component-scan base-package=“com.example” />
</beans>
So, in both configuration it seems that Spring AOP use AspectJ because in these configuration I have: @EnableAspectJAutoProxy and
What it exactly means?