Red de conocimiento informático - Problemas con los teléfonos móviles - ¡¡¡El interceptor personalizado Mybatis integrado de SpringBoot no funciona como solución!!!

¡¡¡El interceptor personalizado Mybatis integrado de SpringBoot no funciona como solución!!!

Este método no tiene nada que ver con Spring. Crea el objeto de complemento mediante reflexión y luego ejecuta el método org.apache.ibatis.plugin.Interceptor#setProperties para leer los parámetros de configuración.

Configure la configuración global de mybatis en el directorio de recursos:

Luego, encontré el artículo "El interceptor Mybatis falla después de que Springboot configura múltiples fuentes de datos", que mencionaba la personalización de la fuente de datos configurada. provocó que el interceptor fallara.

Ubicación de la fuente: org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration

En la fuente anterior: la matriz Interceptor[] se inyecta automáticamente (acabamos de poner la personalización de mybatis El objeto interceptor se coloca en el contenedor Spring). A esto le sigue sqlSessionFactory.

Sin embargo, cuando el proyecto personalizó la clase sqlSessionFactory, no configuró factory.setPlugins(this.interceptors);. Esto hace que el interceptor personalizado no surta efecto incluso si se coloca en el contenedor Spring.

En este caso, el interceptor personalizado de mybatis se ejecutará dos veces. Es decir, el interceptor configurado en mybatis-config.xml crea el interceptor mediante reflexión, mientras que el interceptor colocado en el contenedor Spring se inicializa.

Ubicación de origen: org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory

Eventualmente se ejecutará en: