简朴相识mybatis拦截器实现道理及实例
Plugin的wrap要领,它按照当前的Interceptor上面的注解界说哪些接口必要拦截,然后判定当前线针工具是否有实现对应必要拦截的接口,假如没有则返回方针工具自己,假若有则返回一个署理工具。而这个署理工具的InvocationHandler正是一个Plugin。以是当方针工具在执行接口要领时,假如是通过署理工具执行的,则会挪用对应InvocationHandler的invoke要领,也就是Plugin的invoke要领。 以是接着我们来看一下该invoke要领的内容。这里invoke要领的逻辑是:假如当前执行的要领是界说好的必要拦截的要领,则把方针工具、要执行的要领以及要领参数封装成一个Invocation工具,再把封装好的Invocation作为参数转达给当前拦截器的intercept要领。假如不必要拦截,则直接挪用当前的要领。Invocation中界说了界说了一个proceed要领,其逻辑就是挪用当前要领,以是假如在intercept中必要继承挪用当前要领的话可以挪用invocation的procced要领。 这就是Mybatis中实现Interceptor拦截的一个头脑 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |