Red de conocimiento informático - Problemas con los teléfonos móviles - La COI de primavera está desacoplada, ¿qué hace AOP?

La COI de primavera está desacoplada, ¿qué hace AOP?

Mire las imágenes

AOP es una implementación del modo proxy y comprenderá que el modo proxy no es difícil.

El patrón proxy es un poderoso patrón de diseño para el procesamiento compuesto de lógica empresarial.

Hay ejemplos frecuentes en la vida. Por ejemplo, vas a visitar a un amigo pero él no está en casa y en ese momento le pides a su familia que le avise. Pero no conoces el proceso de notificación. Si eres educado, tal vez tu familia te elogie; si tienes mala actitud, tal vez te cuenten una historia. Lo único que te importa es informar a tus amigos sobre el incidente, pero pueden suceder otras cosas en el camino.

En el contexto del programa, una parte del procesamiento empresarial encontrará lógica empresarial adicional que debe agregarse, y esta lógica empresarial se ha encapsulado. La lógica empresarial en sí también se ha encapsulado y no existe ninguna relación entre los dos módulos. En este momento necesitamos usar el modo proxy. Aquí hay un código de muestra simple para ilustrar la idea básica del modo proxy.

¿clase?pública?¿ProxyObject?implementos?¿Objeto?{

¿Objeto?obj;

¿público?ProxyObject()?{

System.out.println("Esta es la clase de proxy");

obj?=?new?ObjectImpl();

}

public?void ?action()?{

System.out.println("Inicio del agente");

obj.action();

System.out.println ("Fin del agente");

}

}

¿objeto público?{

void?acción(); p>

}

¿clase pública?ObjectImpl?implementos?¿Objeto?{

¿pública?void?acción()?{

Sistema .out .println("========");

System.out.println("========");

Sistema .out .println("Esta es la clase que se está representando");

System.out.println("========");

System.out .println ("========");

}

}

¿clase?pública?Prueba?{

public?static?void?main()?{Object?obj?=?new?ProxyObject();

obj.action();

}

}

}

}

El modo proxy es la encarnación de la llamada indirecta en el código de ejemplo anterior. Si llama directamente a la clase de implementación del objeto, es decir, al método en ObjectImpl, no puede llamar a una nueva lógica de negocios. Sin embargo, si implementa una clase de proxy y llama a ObjectImpl en la clase, se llamará a ObjectImpl indirectamente cuando acceda a la clase de proxy externamente. Este proceso se puede ampliar sin modificar el código fuente de ObjectImpl.

AOP en Spring se basa en este principio. En AOP, se producen múltiples procesamientos lógicos compuestos y el uso de clases de proxy le permite ejecutar exactamente la unidad lógica definida en la clase de destino y ampliar otras unidades lógicas.