Comprender la programación orientada a aspectos de Spring AOP

Tabla de contenido

1. Pensamiento de programación orientado a aspectos (AOP)

2. Principales escenarios de aplicación del pensamiento AOP

3. Introducción a la terminología AOP

4. Introducción al marco Spring AOP y clasificación de relaciones.


1. Pensamiento de programación orientado a aspectos (AOP)

AOP: Programación orientada a aspectos Programación orientada a aspectos

        Se puede decir que AOP es el complemento y la mejora de la POO (Programación orientada a objetos). La programación orientada a objetos introduce conceptos como encapsulación, herencia y polimorfismo para establecer una jerarquía de objetos que se utiliza para simular una colección de comportamientos públicos. Sin embargo, la programación orientada a objetos permite a los desarrolladores definir relaciones verticales, pero no es adecuada para definir relaciones horizontales, como las funciones de registro. El código de registro a menudo se distribuye horizontalmente en todas las jerarquías de objetos y no tiene nada que ver con la funcionalidad principal de su objeto correspondiente. Lo mismo ocurre con otros tipos de código, como seguridad, manejo de excepciones y persistencia transparente. El código irrelevante en todas partes se llama transversal En el diseño de programación orientada a objetos, conduce a la duplicación de una gran cantidad de código y no favorece la reutilización de varios módulos.

        La tecnología AOP es todo lo contrario: utiliza una tecnología llamada "transversal" para diseccionar el interior del objeto encapsulado y encapsular los comportamientos públicos que afectan a múltiples clases en un módulo reutilizable y llamarlo "Aspecto", es decir, cortar. Los llamados "aspectos" son simplemente lógica encapsulada o responsabilidades que no tienen nada que ver con el negocio pero que son convocadas conjuntamente por los módulos de negocio, de modo que se reduce la duplicación de código en el sistema, se reduce el acoplamiento entre módulos y se facilita. operatividad futura y mantenibilidad.

Comprensión de la programación vertical OOP (programación orientada a objetos):

  1. Al heredar la llamada al método, la subclase puede usar el método de la clase principal, lo cual es programación vertical y vertical.
  2. Desventajas: no se puede lograr la modificación local, porque la subclase solo tiene dos modos operativos para los métodos de la clase principal, uno es heredar completamente los métodos de la clase principal y el otro es reescribir completamente los métodos de la clase principal. Esto significa que si desea agregar la misma función a todos los métodos, debe agregar manualmente el código de la función correspondiente a todos los métodos uno por uno. Esto conduce a redundancia de código y dificultades de mantenimiento.

 Comprensión de AOP (programación de aspectos) de la programación de aspectos AOP

  1. El código comercial complementario se puede insertar horizontalmente en el código comercial. Esta es la programación basada en aspectos. La operación más crítica es la extracción e inserción de código redundante.
  2. AOP resuelve el problema central: resolver el problema redundante del código comercial no central.

AOP y proxies dinámicos

  1. El núcleo de la programación orientada a objetos AOP: la programación orientada a objetos es una simplificación de los agentes dinámicos. Hay dos métodos de implementación de agentes dinámicos en Java, uno es el modo JDK y el otro es el modo cglib, pero la implementación de ambos modos es muy complejo.
  2. ¿Por qué implementar una clase de proxy dinámica? Debido a que la POO tradicional (programación orientada a objetos) tiene muchas deficiencias, por ejemplo, la salida de una interfaz que implementa cálculos requiere una gran cantidad de operaciones no comerciales, como generar información sobre los valores de los parámetros entrantes y generar información de resultados. Cada método requiere estas operaciones no comerciales, por lo que para desacoplar y separar las actividades no comerciales y las principales, es necesario utilizar agentes dinámicos para lograrlo.

2. Principales escenarios de aplicación del pensamiento AOP

AOP (Programación orientada a aspectos) es un paradigma de programación que separa las preocupaciones transversales comunes (como el registro, las transacciones, el control de permisos, etc.) de la lógica empresarial, lo que hace que el código sea más claro, más conciso y más fácil de mantener. AOP se puede aplicar a varios escenarios. Los siguientes son algunos escenarios comunes de aplicación de AOP:

  1. Registro: es muy importante registrar registros en el sistema. AOP se puede utilizar para implementar la función de registro. Los registros se pueden registrar antes, después o cuando se lanza una excepción.
  2. Procesamiento de transacciones: el uso de transacciones en las operaciones de la base de datos puede garantizar la coherencia de los datos. Puede usar AOP para implementar funciones de procesamiento de transacciones. Puede iniciar una transacción antes de que comience el método y confirmar o revertir la transacción después de que se complete el método.
  3. Control de seguridad: el sistema contiene ciertas operaciones que requieren control de seguridad, como inicio de sesión, cambio de contraseña, autorización, etc. AOP se puede utilizar para implementar funciones de control de seguridad. Los permisos se pueden juzgar antes de ejecutar el método. Si el usuario no tiene permisos, se generará una excepción o se redirigirá a una página de error para evitar el acceso no autorizado.
  4. Monitoreo del rendimiento: durante el funcionamiento del sistema, a veces es necesario monitorear el rendimiento de ciertos métodos para encontrar cuellos de botella en el sistema y optimizarlos. AOP se puede utilizar para implementar la función de monitoreo del rendimiento. La marca de tiempo se puede registrar antes de ejecutar el método. Después de ejecutar el método, se calcula el tiempo de ejecución del método y se envía al registro.
  5. Manejo de excepciones: pueden ocurrir varias excepciones en el sistema, como excepciones de puntero nulo, excepciones de conexión de base de datos, etc. AOP se puede usar para implementar la función de manejo de excepciones. Durante la ejecución del método, si ocurre una excepción, el manejo de excepciones (como el registro) , enviar correos electrónicos, etc.).
  6. Control de caché: algunos datos en el sistema se pueden almacenar en caché para mejorar la velocidad de acceso. AOP se puede usar para implementar la función de control de caché. Puede consultar si hay datos en el caché antes de ejecutar el método. Si es así, devuélvalo. De lo contrario, ejecuta el método y devuelve el método. El valor se almacena en la caché.
  7. Proxy dinámico: una forma de implementar AOP es a través de un proxy dinámico, que puede representar todos los métodos de una determinada clase para implementar varias funciones. En resumen, AOP se puede aplicar a varios escenarios y su función es separar las preocupaciones transversales generales de la lógica empresarial, haciendo que el código sea más claro, conciso y más fácil de mantener.

3. Introducción a la terminología AOP

1-Preocupaciones transversales

De cada método se extrae el mismo tipo de negocio complementario. Dentro del mismo proyecto, podemos utilizar múltiples preocupaciones transversales para mejorar métodos relacionados de muchas maneras diferentes.

Este concepto no existe naturalmente a nivel gramatical, sino que se basa en las necesidades lógicas de funciones adicionales: hay diez funciones adicionales y diez preocupaciones transversales.

2-Notificación (mejorada)

Cada preocupación transversal necesita escribir un método para implementarlo, que se denomina método de notificación.

  • Notificación previa: ejecutada antes del método de destino proxy
  • Notificación de devolución: ejecutada después de que el método de destino delegado finaliza con éxito ( fin de vida )
  • Notificación de excepción: ejecutada después de que el método de destino del proxy finaliza de manera anormal ( muerte )
  • Notificación posterior: se ejecuta después de que finalmente finaliza el método de destino delegado ( conclusión final )
  • Notificaciones envolventes: utilice la estructura try...catch...finally para rodear todo el método de destino proxy, incluidas todas las ubicaciones correspondientes a las cuatro notificaciones anteriores.

3-punto de unión

Este es también un concepto puramente lógico, no definido por la gramática.

Se refiere a esos puntos interceptados. En Spring, los métodos de las clases de destino pueden ser interceptados por servidores proxy dinámicos.

corte de 4 puntos

¡La forma de ubicar el punto de conexión, o puede entenderse como el punto de conexión seleccionado!

Es una expresión, como ejecución (* com.spring.service.impl. . (..)). Cada método que cumple los criterios es un punto de unión concreto.

5-Aspecto

Una combinación de puntos de entrada y notificaciones. es una clase.

objetivo de 6 objetivos

El objeto de destino que se está representando.

7-proxy

Un objeto proxy creado después de aplicar notificaciones al objeto de destino.

8-Tejer en tejido

Se refiere al proceso de aplicar notificaciones a objetivos y generar objetos proxy. Se puede tejer en tiempo de compilación o en tiempo de ejecución, y Spring usa este último.


4. Introducción al marco Spring AOP y clasificación de relaciones.

  1. AOP es un pensamiento de programación diferente de OOP, que se utiliza para mejorar y resolver la redundancia de código no central y los inconvenientes problemas de mantenimiento unificado de OOP.
  2. La tecnología proxy (proxy dinámico | proxy estático) es una tecnología específica para realizar la programación de pensamiento AOP, ¡pero usar un proxy dinámico para implementar el código usted mismo es más engorroso!
  3. El marco Spring AOP, basado en el pensamiento de programación AOP, encapsula la tecnología de proxy dinámico y simplifica la implementación de la tecnología de proxy dinámico. SpringAOP nos ayuda a implementar proxy dinámico internamente. ¡Solo necesitamos escribir una pequeña cantidad de configuración y especificar el rango efectivo para completar la implementación de la programación orientada a aspectos!


Resumen de los puntos clave de este capítulo:

1. Pensamiento de programación orientado a aspectos (AOP)

        Profundice su comprensión de la programación orientada a objetos OOP y la programación orientada a aspectos AOP

2. Introducción a la terminología AOP

        Familiarizado con la terminología AOP: preocupaciones transversales, notificaciones (mejoras), objetivos, puntos de unión, cortes de puntos, aspectos, tejido, proxies.

3. Introducción al marco Spring AOP y clasificación de relaciones.

        Conozca la relación entre los problemas centrales, el pensamiento AOP, la tecnología de agentes y el marco AOP.

Supongo que te gusta

Origin blog.csdn.net/dogxixi/article/details/132520032
Recomendado
Clasificación