JFinal能不能在执行model.save()前添加一个拦截器

目前有维护一个老项目

要添加数据的操作日志

能不能在执行model.save()时触发 一个拦截器或者什么的

无法重写全部model的save方法,实体太多,工作量太大

评论区

JFinal

2019-10-14 14:24

如果你用生成器生成过 model、base model , 可以将生成的 base model 由继承 Model 改为继承 MyModel, 而这个 MyModel 就是你用来实现这个功能的工具,MyModel 大致代码如下:
public class MyModel extends Model {
public boolean save() {
// 这里加入你需要的日志代码
return super.save(); // 这里调用父类的实际保存
}
}

最后通过参考这篇文章,定制一下生成器的模板:
http://www.jfinal.com/share/1021
简单说就是改一下模板中的 extends Model 为 extends MyModel

JFinal

2019-10-14 14:25

补充,如果你自己的 model 没有生成 base model , 也可以将原先的继承 Model 的类,手动改一下继承MyModel , 例如:
原先的 Model 为:
public class User extends Model {....}
改成:
public class User extends MyModel {....}

原理与生成器的办法是一样的都是引入一个中间 MyModel 代替原先的 Model

热门反馈

扫码入社