parpare/before/after触发顺序

最后更新:2023-10-18 19:48:42 | 状态:未完成

interceptor.parpare1
interceptor.parpare2
interceptor.parpare3
listener.parpare1
listener.parpare2
listener.parpare3
try{
    构造SQL

    interceptor.before1
    interceptor.before2
    interceptor.before3
    listener.before1
    listener.before2
    listener.before3


    执行SQL

}catch(e)
listener.after
interceptor.after


prepare:在构造Run(包含SQL,占位参数值等)之前触发,可以在这一步影响SQL的生成【参考示例

其中prepare,before两步都可以返回SWITCH.SKIP,SWITCH.BREAK
after可以返回SWITCH.SKIP
SWITCH.SKIP 表示跳过before2,beore3,但不影响after2,after3,
SWITCH.BREAK 表示中断主流程执行,也就是中断Run(SQL)执行,如果中断则after也不会被触发。


注意这里说的拦截器产并不是基于AOP的方法拦截,而是方法内部的各个阶段拦截

最近更新 搜索 提交