parpare/before/after触发顺序
最后更新:2024-05-23 14:51:32
|
状态:未完成
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的方法拦截,而是方法内部的各个阶段拦截