Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo implementa aop in spring la programación orientada a aspectos?

¿Cómo implementa aop in spring la programación orientada a aspectos?

Programación orientada a aspectos (AOP) de Spring

1 Características del Bean en el contenedor Spring

El objeto javabean del contenedor Spring es singleton de forma predeterminada.

Al configurar ciertos objetos en el archivo xml, puedes usar múltiples columnas.

El objeto javabean en el contenedor Spring se carga inmediatamente de forma predeterminada (creación de instancias inmediata: se completa la carga de Spring, el objeto se crea inmediatamente)

alcance: atributo

singleton: valor predeterminado es una instancia única y el valor predeterminado es cargar inmediatamente. Cuando se carga el contenedor Spring, se crea el objeto bean.

Prototipo: instancias múltiples, el valor predeterminado es la carga diferida. y no se creará cuando se cargue el contenedor Spring. Se crea una instancia del objeto bean solo cuando el objeto bean se obtiene del contenedor

solicitud: encapsula el objeto javabean creado en el alcance de la solicitud

sesión: crea El objeto javabean se encapsula en el alcance de la sesión

El ciclo de vida del objeto del bean contenedor Spring:

La creación del objeto Bean hasta su destrucción es el ciclo de vida del frijol.

El comienzo del ciclo de vida:

Si es una instancia única, comienza cuando se carga el contenedor Spring.

Si se trata de varias instancias, comienza cuando el objeto bean se obtiene del contenedor

Instanciación

Inicialización

Servicio

Destrucción (instancia única: cuando el contenedor es cerrado, la jvm recicla automáticamente varias instancias)

2 Programación orientada a aspectos AOP de Spring

2.1 Simulación de negocios de transferencias bancarias

Requisitos: implementar el banco función de transferencia, debe completarse durante la transferencia

1 Autenticación de identidad (iniciar sesión)

2 Verificación de permisos

3 Implementación de transferencia

4 Registros históricos de transacciones,

Análisis: Las tres funciones 1, 2 y 4 son funciones públicas (funciones únicas) para el negocio bancario.

Al implementar las funciones, 1, 2 y 4 deben extraerse, implementarse por separado,

Logrado la separación de funciones exclusivas y funciones comerciales principales

Logrado mediante proxy dinámico: funciones exclusivas y funciones comerciales principales La fusión. produce objetos comerciales centrales

Cuando se implementa el código, la implementación funcional se separa:

El desarrollo del código se separa y el programa se fusiona cuando se está ejecutando.

2.2 La idea de SpringAOP

En el desarrollo del sistema, las funciones integrales y públicas del sistema se implementan de forma independiente durante el proceso de ejecución del programa, ** *. Integración de funciones sexuales y funciones empresariales básicas.

Beneficios:

1 Completar el desacoplamiento de las funciones principales y las funciones comerciales principales.

2 Proporcionar reutilización de las funciones principales.

2.3 ¿Cuál es el concepto de springAOP?

Aspecto: una clase que encapsula funciones integrales (funciones mejoradas)

Pases de consejo: encapsulados en la clase de aspecto Formas para mejorar la funcionalidad.

PointCut: Pointcut es el concepto de un conjunto, y la expresión del conjunto se expresa mediante una expresión regular

Antes y después de todos los métodos de todos los objetos comerciales principales (típicos de las transacciones). procesamiento de la aplicación AOP)

JoinPoint: punto de conexión, donde se deben agregar consejos al programa y se ejecuta ponitCut

Weaving: integración de aspectos con el proceso de objetos comerciales centrales.

3 Implementación de springAOP

3.1 Implementación a través de interfaces específicas

Tipos de notificaciones Aop:

Antes: notificación previa

Después: Notificación posterior

Alrededor: Notificación envolvente

Lanzamiento: Notificación de excepción

Requisito: Cuando se ejecuta el método en el objeto comercial, se registra función

3.1.1 paquete de notificación previa?org.guangsoft.utils;

importar?java.lang.reflect.Method;

importar ?java. util.Arrays;

import?java.util.Date;

import?org.springframework.aop.MethodBeforeAdvice;

/*** * *? Mejora previa: *?MethodBeforeAdvice?La interfaz indica que el método anulado es un aviso previo *?***/

public?class?BeforeLog?implements?MethodBeforeAdvice

{

@Override

público?void?before(Método?método,

Objeto[]?args,?Objeto?obj)

throws?Throwable

{

System.out.println(método);

System.out.println(Arrays.toString(args)

p>

System.out.println(obj);

System.out.println("BeforeLog-------------"?+?new? Fecha( ));

}

}

Configuración AOP:

xmlns:aop="http://www.springframework.org/schema/aop"?xmlns:p="http://www.springframework.org/schema/p"

xmlns :xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http: //www .springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd ">

.

id="pc "?/>

3.1.2 Post- notificación

Post-mejora de los métodos de los objetos de negocio.

paquete?org.guangsoft.utils;

importar?java.lang.reflect.Method;

importar?java.util.Date;

importar?org .springframework.aop.AfterReturningAdvice;

/*** *?Notificación de publicación*?***/

public?class?AfterLog?implements?AfterReturningAdvice

{

@Override

public?void?afterReturning(Object?obj1,//?obj1?Recibir el valor de retorno del método de destino

¿Método? método ,

Objeto[]?args,

Objeto?obj2)?throws?Throwable

{

//?System. out .println(obj1+"----------------------"+obj2);

System.out.println("AfterLog-- - ----------------"?+?nuevo?Fecha());

}

}

Configuración de AOP:

xmlns:aop="http://www.springframework.org/schema/aop"?xmlns: p="http://www.springframework.org/schema/p"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org /schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd">

nfig>

id="pc"?/>