最近为了方便自己的工作,想写一个简单的 DNS 资源记录的管理系统,这类管理系统其实之前也用各种编程语言、各类框架实现过,功能上虽然说不是很完善,但也能满足自己的一些系统管理工作。其实最简单的无非是把已有的拿过来改改,但这样有点繁琐,而且容易出错,不符合程序员的思维——能用代码自动完成的,就不手工去做。虽然编写代码需要时间,但是后期使用就很方便,就像我常说的磨刀不误砍柴工。
所以就想着去找一个直接通过代码,根据项目配置信息如表结构、字段等信息能自动生成常见的增删查改等通用功能的已有解决方案,无意间了解到JEECG-BOOT
,使用下来还是非常符合我预期的目标的。
以下一些特性是也是我之前项目里经常用到的,在 JEECG-BOOT
里都有提供:
- 项目是基于
Spring boot
,这样直接在IDE
中运行 main,可以打包生成JAR
包,部署的时候不需要额外安装配置如 Tomcat 等 Servlet 应用服务器。 - 项目是前后端分离的,后端只负责提供跨域的基于
JWT
的REST
风格的 API,前端是基于React
、Vue
等现代前端框架,方便开发和维护。JEECG-BOOT
目前使用的是vue
。 - 前端的 UI 框架选择的是我比较喜欢的 antd,之前用过它的
React
版本,还是很方便,界面简洁大气,优雅美观。
下面一些特性是 JEECG-BOOT
自带的比较有特色的内容:
- 支持根据已经设计好的表结构,快速生成前后端代码,当然也要符合
JEECG-BOOT
的一些要求,例如主键字段名称、类型,一些额外的辅助字段。 - 新版本中在上面的基础上提供在线开发,这个功能还是比较实用的,这样就不需要我们先设计生成表结构了,可以一上手就填写字段信息,设置字段在前端页面上显示控件是例如文本框、下拉选择框又或者是时间日期选择框等,功能丰富的搜索也可以设置,支持单表、一对多,这些都是非常非常方便的,可以少写很多自己之前写过的重复性的代码。
- 前端生成的代码也使用
Vue
里面的Mixins
,把相似的功能封装成可复用的组件,这样生成的List
、Modal
组件里面的内容相对来说也简洁清爽,也不失定制可扩展性。 - 支持比较完善的基于角色的权限管理,这个在
JEECG-BOOT
里面也支持的比较好,结合v-has
和@RequiresPermissions
可支持真实的动态权限管理,之前自己写的小项目,一般都是自己用或者提供给少数对技术不是很懂的人,就只是在前端层面控制一些功能的显示或隐藏了。 - 其他一些特性例如消息中心(支持短信、邮件、微信推送等等)、系统监控,实时跟踪系统运行情况等特色功能也是锦上添花的功能点,虽然我自己用不到,但是在其他一些后台管理系统中也还是非常实用的。
其实上面我列举的这些功能点都是从我自己使用角度简单总结的,实际上从项目的 README 中可以看到很多其他通用而且使用的特性,当然也有功能强大的在线开发功能,不过目前开源版本的在线开发功能有所限制,但对于一般项目而言其实也够用了,详情可以参考 https://github.com/zhangdaisc…,我这里就不复制引用了。
下面再说一些自己在使用过程中遇到的问题或者说坑:
- 数据库设置,在项目中有两个数据库配置文件,分别是
jeecg-boot\jeecg-boot-module-system\src\main\resources\application-dev.yml
和jeecg-boot\jeecg-boot-module-system\src\main\resources\jeecg\jeecg_database.properties
,前面一个是项目运行时候的数据源,后面一个是 JEECG 代码生成器相关的数据源,可参考 http://idoc.jeecg.com/1275928,我一般为了简化及方便管理这两个都设置成一样的。 - 前端安装依赖包的时候最好先设置一下
npm
的源,用taobao
的或者cnpm
的,建议全局安装nrm
,由nrm
来管理源,另外依赖项使用yarn
安装会比较好一些,不容易出错,而且速度快,如果npm
下安装的依赖项运行启动的时候报错可以尝试把node_modules
删掉,然后使用yarn
重新安装。 - 如果登录的时候提示登录失败,数据库连接本身有没有问题,那可能就是
redis
忘记启动了,redis
不需要做任何配置,默认监听127.0.0.1
的默认端口就行。
–JEECG-BOOT
2.x 版本开始后端代码采用多模块方式,建议自己写的模块使用单独的一个模块,不要放到 jeecg-boot-module-system
中,这样不会混淆框架代码和自己应用层面的代码,也便于升级、维护。
- 前后端使用的框架或类库都比较多,建议前期遇到问题的时候再仔细查看相关官方文档,多尝试自己分析解决,这样对自己能力也会有所提升,有时候可能就只是自己的配置疏忽又或者确实是一个 bug。
–IDE
方面我自己是使用 VSCode
,打开一个VSCode
窗口,在内置终端中 yarn serve
运行前端,调试模式下运行后端,这样不用来回切换,比较高效一些,相比其他同时打开多个 IDE
来说,不会卡顿,个人推荐。切记需要安装 lombok
扩展。调试或运行模式时如果修改的内容较少,例如修改一个方法里面的实现,可以使用热加载更新,这样就不用每次都重启后端。
遇到问题,可以尝试着仔细看一下错误堆栈信息,不要害怕和担心那些需要翻页和一行上非常长的错误信息,有时候可以根据错误信息就知道什么地方出错了;其次还要多会用、善用搜索引擎,推荐谷歌,如果访问不了,可以用 Bing,用百度搜索出来的结果个人感觉较差。
最后提供几个在写代码过程中会来回翻阅的文档,如果可以的话,尽量看官方的,英文原生的,有些文档没有中文版或者中文版的比较陈旧,翻译质量较差,很多内容都匹配不上。
- Spring Boot
- Vue
- Ant Design of Vue
- Ant Design Pro