La misma orden de ejecución del interceptor de mybatis
Conclusión: Los interceptores que interceptan el mismo método están en orden inverso al que tenemos en el archivo mybatis-config.xml, y el complemento configurado por el contenedor Spring ejecuta el método en último lugar.
interceptor personalizado mybatis (1) uso básico
interceptor personalizado mybatis (2) detalles del objeto
¡El interceptor personalizado Mybatis integrado con SpringBoot no funciona como solución!
Lectura recomendada: cómo surte efecto el complemento
Ubicación de origen: mybatis autoconfigure: org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration#sqlSessionFactory
Nota: SqlSessionFactoryBean implementa la interfaz InitializingBean, que se ejecuta en el método afterPropertiesSet() de org.SqlSessionFactoryBean. método afterPropertiesSet() en el método SqlSessionFactoryBean#buildSqlSessionFactory para leer el archivo xml ConfigLocation, analizar el complemento y colocarlo en el conjunto.
Ubicación de origen: org.apache.ibatis.plugin.InterceptorChain Este método representa el objetivo y representa la clase de proxy. La clase objetivo se mejora capa por capa, por lo que cuanto más tarde sea el interceptor, más se ejecutará.
Y el método del complemento:
en realidad llama al método Plugin.wrap(target, this).
El método wra crea un objeto proxy.
El método wrapper() representa el objeto de destino un nivel a la vez. En otras palabras, el orden de ejecución antes de cortar es el opuesto al orden al insertar el complemento.
Orden de ejecución de múltiples complementos de mybatis