一步一步实现若依框架--01建立多模块项目
在项目中使用到了若依,想从头实现一下。思路就是把项目中涉及到的知识内容单独拎出来理解和做测试,然后再合到系统里去,重点的地方会将涉及到的知识进行总结和扩展。顺序是由后端到前端。 大概思路是:
* 建立多模块项目、修改包依赖关系,整理POM文件依赖 √ * 增加基础公用code * 增加基础权限设置 * 增加代码生成功能 * 增加其他模块 * 升级(mybatis plus、camunda、plus版本的功能) * 基本框架 * 工具类 * 权限页面 * vue3版本
第一步,建立多模块项目。
参照若依代码,建立多模块项目,generator和quartz可以先不建立,后面添加。各模块依赖关系如下:
1)admin作为对外的一层。common是封装的公共类库。system是系统权限(或者说是系统后台管理)的基础功能,在admin中添加自定义模块的引用。不太好理解的是framework模块,可以看成是把系统的公共部分进行了拆分,其他模块可能会用到的放到common中,一些系统的基础配置在程序启动时就会进行处理的内容,比如redis、mybatis这些放到framework里,不需要其他模块引用。
2)dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息, 那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。dependencyManagement中定义的只是依赖的声明,并不实现引入,因此子项目需要显式的声明需要用的依赖。
比如:
- 在子项目中想要引入hutool,由于每个子项目要用,所以在父工程的pom文件中向depdendencies中添加dependency;这样子项目由于继承自父项目,也就都引用上了;子项目不需要在pom中写任何依赖
- 在子项目中想要引入mybatis,由于不是全部子项目都会去访问数据库,所以在父工程的pom文件中向dependencyManagement添加dependency,指定版本号,这样在其子项目需要去添加依赖,但是不需要指定版本号
3)单元测试,依赖springboot环境的测试需要在admin中进行;如果只是一些工具类的测试不需要spring环境初始化可以在自己的模块中进行
4) 这种分层方式,和按照service->dao->entity 的常见三层结构不太一样,可以看做是按照功能模块功能进行纵向拆分,便于微服务化。由于微服务拆分后各功能范围变小,横向拆分也就没那么重要了。各功能模块公共依赖部分由framework或common提供。
代码地址:
参考实现:
若依官网 http://doc.ruoyi.vip/ruoyi-vue/
这位江南大哥讲的很好是从spring security追过来的,这系列文章很多思路和内容也是来源于此,五星推荐 https://github.com/lenve/tienchin-video
基础内容查阅 https://pdai.tech/md/db/nosql-redis/db-redis-data-types.html