Alma ilustración pintada a mano de principio de aplicación de primavera AOP!

Benpian diseñado para permitir a los lectores a Spring AOP tienen una buena comprensión de la realización del principio de una macro, por lo tanto, perder algunos de los detalles, referirse a la aplicación específica: un directorio de origen Primavera hombre honesto
antes de leer este artículo, los lectores quieren utilizar primavera AOP y la primavera de la COI ( @Aspect) por una cierta comprensión, hombre de pocas palabras, dijo, directamente en el mapa

preparativos

  • ServiceClase: Existe la necesidad de encontrar métodos antes y después de la operación de caché con el método para guardar, encontrar el método, las necesidades método para guardar operaciones en todo transaccionales
  • CacheableAspectsección de clase: antes y después de la operación para el almacenamiento en caché de métodos de búsqueda de uso
  • TransctionlAspectCategorías de la sección: Servicio de ahorrar método para hacer funcionar una transacción
  • LogAspectclases de aspecto: las solicitudes de registro del controlador todo el
    AOP listo

Primavera AOP sincronización automática de proxy

En la servicecreación del grano (es decir getBean("service")), AOP por BeanPostProcess postprocesador para operaciones de intervención
se dividen en dos casos:

  1. Definido por el usuario targetSource, se crea el frijol (instancia, el llenado, la inicialización) por el usuario responsable, Primavera COI no posesión del objeto de destino del proxy traget, esto básicamente no sucede, una gran cantidad de personas con unos pocos años de mayo de primavera no sé que existe
  2. Primavera Ioc normalmente se completa objeto proxy targetpara instanciar llena de inicialización. Y luego intervenir en el post-procesador de inicialización, por beaneso es serviceun proxy

Primavera AOP sincronización de proxy

Creación de un wrapIfNecessary operativo de agente

Todo el énfasis en la wrapIfNecessaryoperación que se hace lo que ha sido
Primavera AOP creación de proxy

las llamadas de método de proxy

Una vez que haya creado el agente, si se llama a los métodos? Tenemos Jdk动态代理como ejemplo, la llamada al método dará lugar a invokemétodos. fuente de referencia específico Jdk proxy dinámico para la fuente subyacente
AOP principio método de ejecución

El orden de ejecución de los interceptores de primavera AOP

Como puede verse de lo anterior, el proxy de primavera AOP invokees en realidad método 拦截器implementado.
Lo primero que mira en el orden de ejecución de primavera AOP, con como, LIFO
El orden de ejecución de los interceptores

AOP aplicación interceptor del principio de

A continuación, la cadena interceptor y la forma de asegurar que beforeen afterantes de que? Sino también para asegurar que findel orden de los métodos de ejecución? Para más información lea a invocar el principio de MethodInvocation interceptores de
esta parte de la realización del principio se explica por unas palabras sin fin, teniendo en cuenta la carta sólo se puede obtener una idea
Aquí Insertar imagen Descripciónconcreta interceptor Fuente:

public class MethodBeforeAdviceInterceptor implements MethodInterceptor, BeforeAdvice, Serializable {

	private final MethodBeforeAdvice advice;

	@Override
	public Object invoke(MethodInvocation mi) throws Throwable {
		// 先调用before方法
		this.advice.before(mi.getMethod(), mi.getArguments(), mi.getThis());
		// 继续链式调用
		return mi.proceed();
	}

}
public class AfterReturningAdviceInterceptor implements MethodInterceptor, AfterAdvice, Serializable {

   private final AfterReturningAdvice advice;

   @Override
   public Object invoke(MethodInvocation mi) throws Throwable {
      // 先进行链式调用
      Object retVal = mi.proceed();
      // 再调用afterReturning方法
      this.advice.afterReturning(retVal, mi.getMethod(), mi.getArguments(), mi.getThis());
      return retVal;
   }

}

Título final: Spring AOP se reunió dependencias circulares

La parte del grado de dificultad de las estrellas de diez, considerada como la más compleja pieza Fuente en primavera, esto se puede decir que tener sentido de la comprensión de la primavera ha llegado al nivel de Ali. Aquí es imposible de explicar en pocas palabras, y sólo publicado un mapa, tenemos un conocimiento de la macro, los detalles de primavera AOP se reunió dependencias circulares
dependencias circulares se reunieron AOP

resumen

Primavera AOP es una parte importante de la primavera, Benpian acaba de dar al lector una comprensión en la macro-específica o necesidad de leer el código fuente.

Pintar no es fácil, pesos pesados ​​problemas elogio dar! No entiendo el problema puede dejar un mensaje, responderá a ella, hay también la bienvenida a explorar el lugar equivocado!
Aquí Insertar imagen DescripciónAquí Insertar imagen DescripciónAquí Insertar imagen Descripción

Publicado 43 artículos originales · ganado elogios 57 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/chaitoudaren/article/details/105352273
Recomendado
Clasificación