Spring ya implementó aop, ¿por qué deberíamos usar "aspectj"?
Según tengo entendido por los documentos oficiales de Spring (no es de extrañar, esta es la respuesta más correcta):
①¿Elegir AOP o AspectJ de Spring?
De hecho, Spring es Tener su propio AOP. La función es básicamente suficiente, a menos que desee realizar proxy dinámicamente en la interfaz o interceptar métodos con precisión para captadores y definidores. Estos son requisitos para escribir rarezas y generalmente no se utilizan.
②Cuando usas AOP, ¿usas xml o anotación (@Aspect)?
1) Si utiliza el método xml, no se requiere ningún paquete jar adicional.
2) Si usas el método @Aspect, puedes agregar directamente @Aspect a la clase sin tener que preocuparte por configurarlo en xml. Pero esto requiere un paquete jar adicional (aspectjweaver.jar). Debido a que Spring usa directamente la función de anotación de AspectJ, tenga en cuenta que solo usa su función de anotación. ¡No es una función central! ! !
Me di cuenta de que hay una frase interesante en el documento: ¿El documento dice si elegir Spring AOP o usar Full AspectJ?
¿Qué es el aspecto completo? Si utiliza "aspecto completo J". Es decir, puedes implementar proxies dinámicos basados en interfaces y otras funciones potentes. ¡No solo la función-función-explicación-anotación de aspectoj! ! !
Si utilizas AspectJ completo. Por ejemplo, el método Load-Time Weaving también requiere un paquete jar adicional spring-instrument.jar
Por supuesto, ya sea que esté usando spring aop o aspectoj, necesita aspectojweaver.jar spring-aop.jar. .