众所周知,我们工作中与写代码有关的工作大多是表单提交,内容的展示,前端准备增删改查页面,后端执行增删改查业务操作,如果技术选型比较固定,前后端的技术可能几年都不会改变。比如当前使用的前端框架是vue,后端是SpringBoot+Mybatis,那么就可以写一个代码生成的工具,生成前端的vue页面和后端的分层实现代码以及数据库操作语句和建表语句,包括对表的创建。
publicclassGenerateMain { publicstaticvoidmain(String []args){ Stringpmodule="一级包名称"; Stringmodule=""; Stringpoclassname="pojo类名"; GenerateDaogenerateDao=newGenerateDao(pmodule); GenerateServicegenerateService=newGenerateService(pmodule); GenerateControllergenerateController=newGenerateController(pmodule); generateDao.generateDaoJava(module,poclassname); generateService.generateServiceJava(module,poclassname); generateController.generateControllerJava(module,poclassname); GenerateMysqlMybatisgenerateMybatis=newGenerateMysqlMybatis(pmodule,module,poclassname); generateMybatis.generateMybatisResource(); GenerateVuegenerateVue=newGenerateVue(pmodule,module,poclassname); generateVue.generateVueResource(); } }
这里主要讲一下设计思路,代码实现其实不麻烦,主要是根据各自的代码风格特点去生成一些源代码或者MyBatis xml SQL语句,上面的代码是本人使用到的代码结构层级,根据pojo类名中的自定义注解,注解会标明对应的表明,属性名,对应的数据库列名,那些是需要输出到vue页面的属性等等,根据这些注解,解析生成Controller层,Service层,Dao层和Mybatis的Xml代码以及前端的vue和vue中引用的js里对增删改查的调用代码,比如增删改查统一命名位add,update,delete和select,调用的接口统一用上面的类名作为接口标识,这样执行上述的代码以后,数据库的表自动创建,页面和后端逻辑代码自动创建,后端只要热部署,前端只要热加载,然后配置好页面路由,就可以访问单表的完整版本的增删改查。不用手写,也不用拷贝了,大大的提高了工作效率。以后的工作就是处理多表关联和复杂的业务逻辑的。有的人会说依赖低代码平台不是比你还快吗?这里不做否定,也不做杠精,只是想按照公司自己特有的风格快速的,规范的完成系统开发。在这里只是想强调的是,只要大家按照约定好的规范,很多重复的东西可以快速生成,大家可以把时间和精力放在更重要更核心的技术攻关上去。仅供参考,不喜勿喷。