在拦截器中获取拦截的对象,并是一个身上带value的对象
Entity entity=st.getEntity();这样只能获取这个实体类,但身上不包括值
public interface DaoInterceptor {
void filter(DaoInterceptorChain chain) throws DaoException;
}
// DaoInterceptorChain 包含当前执行的全部信息,如Connection,DaoStatment等等
public class MyDaoInterceptor implements DaoInterceptor {
public void filter(DaoInterceptorChain chain) throws DaoException {
DaoStatement st = chain.getDaoStatement();
if (st instanceof NutPojo) {
// 如果是dao.insert(user)之类的操作,会进入这个分支
//在这里如何获取拦截的对象,并是一个身上带value的对象
} else if (st instanceof NutSql) {
// 如果是自定义SQL,会进入这个分支
}
chain.doChain();//继续下一个拦截器执行
}
}
```
var ioc = {
dao : {
type : "org.nutz.dao.impl.NutDao",
args : [{refer:"dataSource"}],
fields : {
interceptors : [
"log", // 默认的日志还需要的
"time", // 加个时间又如何呢?
"net.demo.MyDaoInterceptor", // 加入自己的,才合适
{refer:"superI"} // 引用另外一个bean作为拦截器
]
}
}
}