新聞中心
插件(plugins)
Mybatis 允許你在映射語(yǔ)句執(zhí)行過(guò)程中的某一點(diǎn)進(jìn)行攔截調(diào)用。默認(rèn)情況下,MyBatis 允許使用插件來(lái)攔截的方法調(diào)用包括:

在富裕等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,富裕網(wǎng)站建設(shè)費(fèi)用合理。
- Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
- ParameterHandler (getParameterObject, setParameters)
- ResultSetHandler (handleResultSets, handleOutputParameters)
- StatementHandler (prepare, parameterize, batch, update, query)
這些類(lèi)中方法的細(xì)節(jié)可以通過(guò)查看每個(gè)方法的簽名來(lái)發(fā)現(xiàn),或者直接查看 MyBatis 發(fā)行包中的源代碼。 如果你想做的不僅僅是監(jiān)控方法的調(diào)用,那么你最好相當(dāng)了解要重寫(xiě)的方法的行為。 因?yàn)樵谠噲D修改或重寫(xiě)已有方法的行為時(shí),很可能會(huì)破壞 MyBatis 的核心模塊。 這些都是更底層的類(lèi)和方法,所以使用插件的時(shí)候要特別當(dāng)心。
通過(guò) MyBatis 提供的強(qiáng)大機(jī)制,使用插件是非常簡(jiǎn)單的,只需實(shí)現(xiàn) ?Interceptor接口,并指定想要攔截的方法簽名即可。
// ExamplePlugin.java
@Intercepts({@Signature(
type= Executor.class,
method = "update",
args = {MappedStatement.class,Object.class})})
public class ExamplePlugin implements Interceptor {
private Properties properties = new Properties();
public Object intercept(Invocation invocation) throws Throwable {
// implement pre processing if need
Object returnObject = invocation.proceed();
// implement post processing if need
return returnObject;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
}
上面的插件將會(huì)攔截在Executor實(shí)例中所有的?update?方法調(diào)用, 這里的?Executor?是負(fù)責(zé)執(zhí)行底層映射語(yǔ)句的內(nèi)部對(duì)象。
覆蓋配置類(lèi)
除了用插件來(lái)修改 MyBatis 核心行為以外,還可以通過(guò)完全覆蓋配置類(lèi)來(lái)達(dá)到目的。只需繼承配置類(lèi)后覆蓋其中的某個(gè)方法,再把它傳遞到 ?SqlSessionFactoryBuilder.build(myConfig)? 方法即可。再次重申,這可能會(huì)極大影響 MyBatis 的行為,務(wù)請(qǐng)慎之又慎。
標(biāo)題名稱:創(chuàng)新互聯(lián)MyBatis教程:MyBatis3XML配置-插件
URL網(wǎng)址:http://www.dlmjj.cn/article/cccsjig.html


咨詢
建站咨詢
