SoJpt Boot 2.0-3.8 发布,Spring Boot 使用 Jfinal 特性极速开发

   在Spring Boot框架下使用Jfinal特性极速开发,可以在Spring Boot中向使用Jfinal一样使用Enjoy, controller的一系列方法(如: getFile(), renderFile....),以及ActiveRecord

sojpt-logo

SoJpt Boot,在Spring Boot框架下使用Jfinal特性极速开发。

可以在Spring Boot中向使用Jfinal一样使用Enjoy, Aop, controller的一系列方法(如: getFile(), renderFile....),以及ActiveRecord, 只有Jfinal的路由被去掉,其他Jfinal特性可以原生使用

SoJpt-Boot-2.0-3.8 changelog

  1. 配置方式,还原Jfinal原生配置,继承SoJptBootConfig即可。

  2. 解决undertow并发环境下报异常的问题

  3. 加入Aop、configConstant配置、configPlugin配置、configInterceptor全局拦截器配置、configHandler、configEngine、afterJFinalStart等一系列Jfinal原生配置模式。

  4. 取消Tx注解、使用原生@Before(Tx.class)即可

  5. 取消Jfinal原生包的引入,直接引入sojpt-boot依赖即可

  6. 取消SoJptController, 继承Jfinal的Controller即可

这次2.0版本,直接引入Jfinal3.8的源代码,修改了其中几行源代码,即实现了Spring Boot与Jfinal的混合双打,使Spring Boot环境下的开发者能够更好的体验Jfinal极速开发的特性,有更多的时间去配恋人或家人。 只要Jfinal有新版发布,SoJpt Boot会直接同步更新,因只修改几行代码,所以不用担心升级的复杂度。


评论区

l745230

2019-04-10 14:25

提个小意见,"修改了其中几行源代码",这几行的改动,能跟否在JFinal上放开变量,或者提供接口的方式增强呢. 目前版本SoJpt-Boot集成了jfinal3.8的源码,未来将Jfinal源码剥离出去.SoJpt-Boot作为一个单独的增强包存在.

Sohnny

2019-04-10 15:19

@l745230 本来就是这么想的。目前这么解决。 如有必要和jfinal沟通下就解决了。

mr_wangyan

2019-04-10 16:29

我老项目都使用了@ Transactional 这个怎么整?

Sohnny

2019-04-10 20:22

@mr_wangyan 没关系,所谓混合双打就是都可以用。 理论spring boot所以版都可以用,我这只测过2.0以上的

穿越123

2019-04-11 10:31

真是多此一举,你还不如就直接弃用spring boot, 搞这么麻烦干嘛,出了bug你就蛋疼

Sohnny

2019-04-11 11:48

@穿越123 存在即合理, 我从这句话里也想明白了人活着的意义,但就是给别人说不清,要自己体会

Sohnny

2019-04-11 11:52

@穿越123 SoJpt Boot初衷就是给只能在spring boot框架做开发但又想使用jfinal极速开发特性的人用的。毕竟Spring Boot 以及它的生态在业界的应用率有目共睹。举个例子,一天你接到一个Spring Boot项目的功能改造或升级。SoJpt Boot不就是个很好的选择了? 这个我说过很多次了

l745230

2019-04-11 14:35

@穿越123 大厂小厂老项目,常见的还是spring全家桶. 不是Jfinal好用就能抛弃掉的. 这个场景下用上Sojpt,从而用jfinal在旧项目上快速开发,还是挺合理的.

l745230

2019-04-11 14:35

@Sohnny 讲道理,这个很有必要.

zaonixian

2019-04-12 15:08

sojpt的官网是不是打不开了

Sohnny

2019-04-12 22:26

@zaonixian 最近官网确实偶尔崩溃,今天已经找到问题,应该不会有问题了.官网分享里有本此故障说明

mr_wangyan

2019-04-15 09:53

@Sohnny 确定?那我试试哈,回头再来提问。

mr_wangyan

2019-04-15 10:09

我发现了个问题,如果是在用@ Transactional 注解的service里使用jfinal的db 操作,事务是没法控制的。两者相互独立。你这个就相当于在springboot上贴了个jfinal , 与其这样我还不如单开个项目。

Sohnny

2019-04-15 13:20

@mr_wangyan 用ActiveRecord为啥还用Transactional呢?

Sohnny

2019-04-15 13:23

@mr_wangyan 不过也可以加上,对把jfinal的也加进去,问题提的非常好,下一个版本加

Sohnny

2019-04-15 16:18

@mr_wangyan https://www.jfinal.com/doc/5-7 可以看看这个, 用db操作的事务处理

mr_wangyan

2019-04-15 17:58

@Sohnny 我试过,比较难处理。因为Transactional有很多rollbackFor 等可选参数。

Sohnny

2019-04-15 18:11

@mr_wangyan 嗯, 考虑周全但是增加了复杂度. 我考虑了下,还是把1.1版本事务功能还原, 使其在service层发挥作用.增加事务使用便捷度(这点也刚好是结合了spring的好处). 更深入的用法,参考jfinal使用事务的方式.

mr_wangyan

2019-04-15 18:21

@Sohnny 我原来的想法是在极少数活动等变动比较大的代码块中穿插使用jfinal 但是很多用户,余额,订单等等操作都是mybatis 写的,我不太想把user, order 等model重新生成一边,这样就跟一套系统运行了两套不同的操作代码一样,非常另类。加上jfinal 的ActiveRecord事务无法统一到Transactional下,后来我就放弃了。

Sohnny

2019-04-15 18:37

@mr_wangyan 另不另类我就不评价了, ActiveRecord事务无法统一到Transactional? 为什么要统一呢?

Sohnny

2019-04-15 18:44

@mr_wangyan 使用了俩个orm框架,事务要是能统一也比较乱, 要一致orm用你原来的, 不影响你用JFinal的 Aop Enjoy Controller的方法等等

mr_wangyan

2019-04-15 18:59

@Sohnny 是啊,可能是了解的不深也可能我这种想法就是有问题。但确实orm 不像一些util一样能随处使用,还是有些限制,没那么自由。

Sohnny

2019-04-15 19:16

@mr_wangyan 只要两个不混合起来用,就不会乱.

热门分享

扫码入社