mybatis官网参考文档-XML配置_插件(plugins)(版本: 3.4.6-SNAPSHOT)
来源:互联网 发布:网络低俗文化 编辑:程序博客网 时间:2024/05/18 03:08
XML 映射配置文件
插件(plugins)
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
- Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
- ParameterHandler (getParameterObject, setParameters)
- ResultSetHandler (handleResultSets, handleOutputParameters)
- StatementHandler (prepare, parameterize, batch, update, query)
这些类中方法的细节可以通过查看每个方法的签名来发现,或者直接查看 MyBatis 的发行包中的源代码。 假设你想做的不仅仅是监控方法的调用,那么你应该很好的了解正在重写的方法的行为。 因为如果在试图修改或重写已有方法的行为的时候,你很可能在破坏 MyBatis 的核心模块。 这些都是更低层的类和方法,所以使用插件的时候要特别当心。
通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现 Interceptor 接口,并指定了想要拦截的方法签名即可。
// ExamplePlugin.java@Intercepts({@Signature( type= Executor.class, method = "update", args = {MappedStatement.class,Object.class})})public class ExamplePlugin implements Interceptor { public Object intercept(Invocation invocation) throws Throwable { return invocation.proceed(); } public Object plugin(Object target) { return Plugin.wrap(target, this); } public void setProperties(Properties properties) { }}
<!-- mybatis-config.xml --><plugins> <plugin interceptor="org.mybatis.example.ExamplePlugin"> <property name="someProperty" value="100"/> </plugin></plugins>
上面的插件将会拦截在 Executor 实例中所有的 “update” 方法调用, 这里的 Executor 是负责执行低层映射语句的内部对象。
NOTE 覆盖配置类
除了用插件来修改 MyBatis 核心行为之外,还可以通过完全覆盖配置类来达到目的。只需继承后覆盖其中的每个方法,再把它传递到 SqlSessionFactoryBuilder.build(myConfig) 方法即可。再次重申,这可能会严重影响 MyBatis 的行为,务请慎之又慎。
阅读全文
0 0
- mybatis官网参考文档-XML配置_插件(plugins)(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_配置环境(environments)(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_对象工厂(objectFactory)(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_映射器(mappers)(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_properties(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_settings(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_typeAliases(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_typeHandlers(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-XML配置_databaseIdProvider(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-入门(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_select(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_参数(Parameters)(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_insert, update 和 delete(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_Result Maps(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_自动映射(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-MapperXML_缓存(版本: 3.4.6-SNAPSHOT)
- mybatis官网参考文档-动态 SQL(版本: 3.4.6-SNAPSHOT)
- MyBatis 教程 - MyBatis插件(Plugins)开发
- 织梦dedecms自定义表单中设置必填项的方法
- Linux 断点续传文件
- 面向对象:如果你喜欢运动、英语、阅读、艺术设计、烹饪等,那不管是做朋友还是恋爱结婚,都将是我莫大的荣幸!
- Python中类似于Matlab中的X(X==condition)语句
- 利用Python进行数据分析(五)之pandas入门
- mybatis官网参考文档-XML配置_插件(plugins)(版本: 3.4.6-SNAPSHOT)
- 【11-15】LeetCode:Python解题
- DrawbleLyout的条目监听事件
- OpenStack+Ceph+热迁移+++三、各节点解析与基本设置
- sizeof,if和switch,const和define···
- C++ const修饰函数、函数参数、函数返回值
- 欢迎使用CSDN-markdown编辑器
- ubuntu 启动服务
- 容器内的子控件居中显示