Análisis de los principios de implementación de Spring AOP
El núcleo de Spring es IOC y AOP. IOC se ocupa principalmente de la gestión de dependencias, la consulta de dependencias y la inyección de dependencias. En el artículo anterior sobre el ciclo de vida de los beans, se ha hecho relativamente mucho sobre el ciclo de vida de los beans. Análisis, analicemos el principio de implementación de AOP antes.
Vista previa del archivo de configuración
actualizar
-gt; getFreshBeanFactory
-gt; actualizarBeanFactory
-gt; AbstractRefreshableApplicationContext.loadBeanDefinitions(beanFactory)
-gt; ...
-gt; /p>
Todos los procesos anteriores se mencionan en el ciclo de vida del Bean y existen No hay cambios arriba.
La diferencia es que lt; aop: configgt; es una etiqueta personalizada, en cuyo caso se debe utilizar el método parseCustomElement
La relación de mapeo de NameSpaceHandler se almacena en DefaultNamespaceHandlerResolver. el controlador personalizado aop. Etiqueta [aop:config] Se entregará nuevamente a ConfigBeanDefinitionParser para su análisis.
ConfigBeanDefinitionParser.parse
-gt; configureAutoProxyCreator
-gt; AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(parserContext, elemento)
-gt; ..
La implementación de AOP se basa en IOC y personaliza la estructura del bean a través de beanPostProcessor
El método postProcessAfterInitialization de AspectJAwareAdvisorAutoProxyCreator se implementa en su padre AbstractAutoProxyCreator, que encapsula los beans instanciados.
El Bean se encapsula usando ProxyFactory createAopProxy y finalmente pasa al método createAopProxy de DefaultAopProxyFactory.
Como puede ver:
La función aop también se implementa con la ayuda de la gestión de beans de Spring. Después de comprender todo el proceso de los beans, será fácil acceder a otros módulos de Spring. entender. .