Capacitación en Java de Beida Jade Bird: ¿Cómo se implementa SpringAOP dinámico?
SpringAOP usa el modelo de proxy para generar un proxy para el objeto de destino en tiempo de ejecución y usa el proxy para reemplazar el objeto de destino. Todo el proceso es transparente para el usuario. el objeto de destino. El tipo de objeto proxy es implementado por la subclase o interfaz de la clase a la que pertenece el objeto de destino. Tianjin IT Training/cree que esta subclase también es dinámica en tiempo de ejecución. Generación, este proceso de generación de subclases utiliza tecnología operativa de código de bytes. Spring Framework utiliza dos tecnologías de código de bytes: proxy dinámico JDK y CGLIB. Cuando la clase de destino implementa la interfaz, se utiliza el proxy dinámico JDK; de lo contrario, se utiliza el proxy CGLIB.
La implementación de AOP consta de los siguientes pasos: Analizar caras en función de la configuración o anotaciones.
Genere un objeto proxy AOP, genere una clase de proxy y una instancia de la clase de proxy para el objeto de destino, y genere una cadena de notificación que se establecerá en el objeto proxy según la superficie analizada, lo que se establecerá en la devolución de llamada del proxy en ejecución.
Registre el objeto proxy AOP en el contenedor en lugar del objeto de destino, y el contenedor devolverá el objeto proxy cuando el usuario solicite el bean de destino del contenedor. A continuación se analizará paso a paso cada uno de los pasos anteriores.
Resolución de corte Antes de analizar el proceso de resolución de corte, primero comprenda varias interfaces clave; consulte el diagrama de clases a continuación.
PointCut: describe el punto de corte en la coincidencia del punto de corte, utilice ClassFilter para la coincidencia de clases y MethodMatcher para la coincidencia de métodos de ejecución.
Notificaciones: notificaciones, AfterAdvice después de las notificaciones, BeforeAdvice antes de las notificaciones, notificaciones de referencia de DynamicIntroductionAdvice y notificaciones envolventes implementadas a través de interceptores.
Asesor: Notificador, también conocido como aspecto, notificador de corte de punto PointcutAdvisor, notificador de referencia de IntroducciónAdvisor. Antes de crear un proxy AOP, debe resolver la configuración de pointcut relevante en un objeto de la subclase de interfaz en el diagrama de clases anterior. No existe tal proceso para ProxyFactoryBean porque los pointcuts no se pueden usar de esta manera.
Una vez completado el análisis facial, la notificación analizada se agregará a la cadena de notificación y el objeto proxy AOP hará referencia a la cadena de notificación para ejecutar la lógica de notificación facial.
El código para agregar cadenas de notificación es similar para los métodos de etiquetas aop y los métodos de anotación, pero el proceso de análisis de aspectos es ligeramente diferente.