Las trampas encontradas por AopContext.currentProxy

La función de aspecto de Spring se realiza a través de proxy.Los métodos de implementación incluyen el método de proxy dinámico JDK y el método Cglib. 

A veces es necesario realizar algunas funciones, como registros, permisos y monitoreo a través de AOP en la capa de servicio, pero cuando se autoinvoca en el servicio, no puede ingresar nuevamente a la clase de proxy, lo que provocará una fuga de registro.

En este punto, se puede usar AopContext.currentProxy() para resolver el problema. Utilice AopContext.currentProxy().xxxx() para reemplazar el método de autoinvocación de this.xxxx().
La esencia de AopContext.currentProxy() es usar ThreadLocal para generar un proxy local. Este enfoque puede afectar el rendimiento. ¡Los artículos de seguimiento profundizarán en los principios internos y el rendimiento de ThreadLocal!
Limitaciones de AopContext.currentProxy():

  1) En el método llamado por AopContext.currentProxy(), si este método llama a otros servicios, este método debe ser un modificador público. De lo contrario, se encontrará que el valor del servicio inyectado a través de @Autowired es nulo.

Supongo que te gusta

Origin blog.csdn.net/shark1357/article/details/108481063
Recomendado
Clasificación