1.實現自定義mybatis攔截器
@Component @Intercepts({ @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) }) public class MybatisInterceptor implements Interceptor { // 略...... }
2.在web listener中添加這個攔截器
@Component public class StartSysListener implements ApplicationListener<ContextRefreshedEvent> { private static Logger log = LoggerFactory.getLogger(StartSysListener.class); @Autowired private MybatisInterceptor mybatisInterceptor; @Autowired private List<SqlSessionFactory> sqlSessionFactoryList; @Override public void onApplicationEvent(ContextRefreshedEvent event) { this.addMyInterceptor(); } private void addMyInterceptor() { log.debug("添加自定義Mybatis SQL攔截器."); for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) { sqlSessionFactory.getConfiguration().addInterceptor(mybatisInterceptor); } } }
這種方式添加簡單,易於使用。