2019-03-21 16:52

@bobkuan 数据库在本机,可以重现这个问题? 那就太奇怪了,用排除法换台机器试试

druid 用了很多年了,从来没出现过这个问题

2019-03-21 16:51

jfinal 的 pom.xml 文件在你的项目中应该用不到,而且在我这里也没有问题

不过还是得谢谢你的反馈

2019-03-21 16:49

在 lib 目录下面查找一下你这个项目打出来的那个 jar 包, 将 jar 包改为扩展名 .zip,然后用 mac 电脑打开,里面有没有 com.app.common.CoreConfig.java

2019-03-21 16:47

文档、源代码是最基础的教程,如果想更快速提升,加入俱乐部是最划算的:
http://jfinal.com/club

2019-03-21 16:47

@hb963724769 CacheInterceptor 做得比较早,是为控制层而做的,但你可以参考它写一个可以用于 service 层的拦截器,实现方式都是似的

2019-03-21 16:45

在你自己的 task 内部使用 try catch 即可

定时任务是在独立的线程中执行的,并不会在你的 controller 、serivce 管辖范围之内

2019-03-21 16:43

@mr_wangyan 这种需求在拦截器里面使用 Db.tx 机制实现起来简单,下面给出 jfinal 拦截器的实现方式:
Db.tx(() -> {
try {
inv.invoke();
return true;
} catch (Exception e) {
Transactional tx = inv.getMethod().getAnnotation(Transactional);
Class rollbackFor = tx.rollbackFor;
if (e instanceof rollbackFor) {
return false;
}

Class noRollbackFor = tx.noRollbackFor;
if (e instanceof noRollbackFor) {
return true;
}

// 其它异常是否要回滚,选择 return xxx
return true;
}
});

与上面的方式类似,你可以使用 spring boot 的拦截器也来实现 Db.tx 机制

2019-03-21 11:47

@whjjjjjj 你这个需求或许用不上指令扩展,用用 shared method 或者 shared object 扩展就可以了

2019-03-21 11:46

@mr_wangyan 参考 jfinal 的 Tx 拦截器,在 springboot 里面也做一个 springboot 的拦截器就可以了,机制是一样的,只是实现方式不同

你甚至可以将拦截器的代码进一步简化,直接在 Spring boot 的拦截器用上 Db.tx 就可以了

2019-03-21 10:57

信息量不够,不知道具体什么需求

2019-03-21 10:56

这个不是三言两语能说清楚的,需要设计 account、role、permission、account_role、role_permission 这样的数据结构,然后划分好 role 为管理员,然后再写代码来判断

加入 jfinal 俱乐部,俱乐部专属福利中有完整的代码,拿来即用:
http://jfinal.com/club

2019-03-21 10:53

@l745230 做这个功能倒是容易,但认知成本会高一些,例如,当既配置 include 又配置 exclude 时,要怎么来执行

站在 jfinal 的角度并不是很清晰地可以把握

2019-03-21 10:51

@veky 一般来说 cron 表达式就完全控制了调度逻辑,所以中途用代码关闭调度的情况不多