2024-12-16 18:53
@北流家园网 我没用过sa-token,但是通过他们官网文档介绍:https://sa-token.cc/doc.html#/use/session
可知 有 StpUtil.getSession() 这个工具类。
https://sa-token.cc/doc.html#/start/download
JF 的文档:https://jfinal.com/doc/3-10
可知 Controller有getSession()系列方法。那么可以通过自定义BaseController覆写里面的getSession系列方法。返回一个你自定义的HttpSession对象(装饰模式)里面方法转调原HttpSession对象的方法。
比如重写HttpSession的getAttribute方法,里面可以先取原HttpSession对象的getAttribute数据,没有的时候,再去取StpUtil.getSession().get(key) 这样子。就兼容了老项目与新框架。
如果项目没有BaseController这层,可以直接在Handler层对HttpServletRequest对象进行(装饰模式),进而重写HttpServletRequest类的request.getSession系列方法,返回你自定义的HttpSession对象。
2024-12-07 18:31
@zzutligang 昂,那使用Db.txInNewThread 包裹执行DDL操作就行。DDL操作用的数据库连接是新的,不会影响其他
2024-11-29 21:37
@zzutligang 有些业务必须用到 前端参数拼接的话,就用 map 做一个静态的全局白名单(表名、字段、条件等等参数均可,包括 sql 片段都可以放)。键值一样才行,用前端参数做 key 取 map 的value 值拼接到 sql 中。 奇安信安全源码扫码可通过,只做 if 判断,扫描器还过不了。要用 value值做拼接的对象就没问题。可过等保
2024-11-17 15:54
@飞空魔羽 不知道你那项目是不是没编译啥的,我六七年前有分享过一个 demo 在码云,你可以检出对比一下有什么不同https://gitee.com/bean80/yunfinal/tree/undertow/
2024-11-17 15:50
@zzutligang 加几行代码能实现的功能就自己加了,但是要加好多类才能实现的功能。。。那用现成框架更方便了。如果不想搞太麻烦,我就建议搞一个 jvm应用,接收一组 jdbc 和一组 sql 供执行,动态的,用完就关闭完事儿,公共的大家一起用性能还高
2024-11-13 14:48
@zzutligang 市面没有这类业务的框架吗? 虽然代码可实现,但是性能应该会非常差。可以考虑用其他的方案,比如业务需要的数据整合到一个库,用事物完成第一阶段数据整合,再到各应用下取各自需要的数据。或者独立出来应用,把需要的数据源整合在一起,在一个 jvm 里面使用,再用rpc或 http或 sql 取结果数据也是可拆分的。如果非得实现,我想我会用Redis做一个事物组,把需要的xa 数据源都标记在哪个位置,然后用Redis锁,让大家都等业务执行完了, 再用发布信息让大家都提交或回滚处理。