前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >梦回8年前,重启tomcat

梦回8年前,重启tomcat

作者头像
马拉松程序员
发布2024-03-25 13:09:44
730
发布2024-03-25 13:09:44
举报
文章被收录于专栏:马拉松程序员的专栏

最近好久没更新了,因为年后换了一份新工作,各方面还都需要适应下,不光是生活节奏,上下班时间,重要的是还有所做的项目。新公司是一个做自研B端产品的小公司,主要做面向传统企业和金融企业管理公司现金流的产品。

大概的背景介绍完了,简单聊聊现在手头的工作,可能是因为公司的客户面向传统银行,企业居多,所使用的开发框架springmvc,并且打包也还是war,最后扔到tomcat里启动。啊,这瞬间感觉是,梦回8年前我去实习的场景。在java 的开发中,这已经算是比较原始了,毕竟现在都是用的springboot。

其实在对于我等主要是业务代码开发码农来讲,springmvc和springboot 并没有什么区别,springboot 的优势在在于约定大于配置,在于快速构建项目,现在我是经过好几手的代码来二开并且维护,并不需要从0到1搭建项目,所以单纯从代码开发角度,并没有什么太大的区别。

比较蛋疼的事情来了,本次业务功能需要新建8张表,而且还需要一些基础的增删改查操作,并且ORM框架使用mybatis,所以我首先想到,这些基本操作可以用mybatis-plus来处理。

当我把基础entity对象mapper,已经简单的CURD都创建好了。这时候组长说,项目中不能使用mybatis-plus,原因是引入这个包,对我们业务模块没影响,但是代码库是全公司维护了一个,然后使用mybatis-plus后,一些老的模块和功能就不能用了。

具体的原因呢,我也没有深入地询问,反正就是离了一个大谱子。理论上,mybatis-plus只对mybatis做增强,而不会修改。而mybatisplus的sqlSessionFactory完全继承了mybaits的SqlSessionFactory,在创建出来SqlSessionFactoryBean后,之前使用myabatis的地方不会有问题的。

本来呢,事情到此就算了,反正人家要求咋写就咋写吧,但是呢,我还是觉得,并不是因为mybatisplus的原因,所以想如何在不影响之前的老代码的情况下,引入比较简单的脚手架。

其实mybatis也是需要创建一个SqlSessionFactoryBean来管理数据库操作的会话,通过框架实现,sql和java的对象的映射。

那问题就简单了,我创建两个SqlSessionFactoryBean,一个mybatis原生的, 另外一个用mybatis-plus的SqlSessionFactory,两个bean配置上不同的MapperScan,当新开发的mapper继承下baseMapper,就拥有了基础的CURD功能,无需再编写基本的sql,不仅仅大大节约了开发时间。其次还可以减少很多粗心导致的错误,减少调试时间,比如说编写select的时候漏了某个字段,而这个字段正好前端还需要,这样的问题只有到联调的时才容易暴露出来。

但是呢,这仅仅适用于完全的新加的业务,要是维护以前的老功能,操作数据库走之前的SqlSessionFactoryBean,还是得一句一句地写sql。

毕竟是刚刚去新公司,还不到一个月,浑身的反骨,等过了几个月,工作的宗旨立马切回到,能跑就不要动。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马拉松程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档