Respuestas:
Piense en una preocupación como un grupo funcional, por ejemplo, registro, auditoría, seguridad.
Estas funcionalidades siempre están presentes en la mayoría de los códigos, pero en realidad no viven en nuestras clases de animales-> perros, son funcionalidades que deberían vivir en muchas clases, son preocupaciones transversales .
Un Joinpoint es un lugar en el código donde se ejecuta el código de aspecto.
Un punto de corte es cómo decir qué código se ejecuta en el punto de unión.
Tejido : es cuando el compilador / sistema toma su código normal e incluye todo el código AOP para que active el código correcto, etc., puede pensar en esto como un paso adicional de precompilación.
Un ejemplo simple y comprensible es:
Tenga en cuenta que la terminología difiere ligeramente entre diferentes implementaciones y marcos de AOP.
Cada definición se basa en las anteriores.
Algo que le molesta (preocupación) en todas partes (transversal) en su aplicación. por ejemplo, registro o seguridad
Un fragmento de código que se agrega automáticamente antes , después o ambos ( alrededor ) de su código existente
Application code
|
|
|
|
\|/
|
JoinPoint ----------->("before" aspect, on the way in) // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
//your application code
Pointcut finish--------> return (foo)
JoinPoint ----------->("after" aspect, on the way out) // just after your intercepted application code
|
\|/
|
|
|
Application code
Un lugar en la ejecución de código donde se ejecuta parte del aspecto.
El punto donde su aspecto "se une" al punto de corte. En un punto de unión "antes" tendrá acceso a los parámetros, en un punto de unión "después" tendrá acceso al valor de retorno. Si se produce una excepción, es posible que necesite un "try-catch-finally" para manejarlo o volver a lanzarlo.
El proceso de agregar aspectos alrededor de un punto de corte