在mybatis拦截器的一个建议
来源:5-3 代码层读写分离的实现A
丶远走高飞
2018-06-04
老师在DynamicDataSourceInterceptor这个类中的
这个plugin方法中的if判断是完全没有必要的。这过度设计了。
原因是因为在你写DynamicDataSourceInterceptor类上的注解时,已经表明了type为Executor.class。所以在老师您调Plugin.wrap(target, this)的时候,这个Plugin底层已经帮我们筛出了不是type类型的其他对象,只会拦截我们在注解中声明的type类,也就是这里的Executor.class
写回答
3回答
-
同学好,同学有没有考虑到别的情况,因为plugin是public的,第三方调用了plugin方法,传入了一个不是实现Executor接口的Object? :)
082018-06-05 -
丶远走高飞
提问者
2018-06-04
老师可以看这个 wrap方法的源码。
00 -
创通一哥
2018-06-04
估计是老师当时漏掉了注解,所以在plugin方法里面做了判断。
012018-06-04
相似问题