一图读懂 若依后端

举报
Qiuner 发表于 2024/10/28 09:49:23 2024/10/28
【摘要】 一图读懂 若依后端从后端读懂若依整体认识.github 赞助,里面存放了一个放着赞助链接bin批处理文件,有用于打包的package.bat,清理项目的clean.bat,运行的run.batdoc放word文档的,ruoyi-admin后台服务,这里有前端的controller,但没有任何mapper、service层代码ruoyi-system后台服务、framework的附属实现。前两...

一图读懂 若依后端




从后端读懂若依

整体认识

  • .github

    • 赞助,里面存放了一个放着赞助链接

  • bin

    • 批处理文件,有用于打包的package.bat,清理项目的clean.bat,运行的run.bat

  • doc

    • 放word文档的,

  • ruoyi-admin

    • 后台服务,这里有前端的controller,但没有任何mapper、service层代码

  • ruoyi-system

    • 后台服务、framework的附属实现。前两个负责吹牛逼(我系统有文件上传功能,访问xx就能生成xx),这个模块负责实现吹的牛逼

  • ruoyi-common

    • 一看这个名字就知道存放了一些通用的妙妙小工具

  • ruoyi-framework

    • 直接看名字就知道什么意思啦,若依-框架。是若依的核心

  • ruoyi-generator

    • 若依的代码生成功能,这个模块删除也没有什么问题。也因此这一段代码的mapper啊,service什么的都是在本模块以内的

  • ruoyi-quartz

    • 若依的定时任务,这个模块删掉也没有什么问题

  • ruoyi-ui

    • 若依前端,vue2版本

  • SQL

    • 里面有两个数据库表,都很简单,开箱即用

      • quartz.sql

        • 定时任务Quartz数据库,从数据库表名也可也看出,都以Quartz

      • ry_20240629.sql

        • 分别配置若依系统本身运行所要用的(sys 开头),代码生成运行起来的数据库(gen开头)

  • .gitignore

    • git提交排除文件

  • LICENSE

    • 开源证书MIT,开源证书就是指定这个代码到底要什么情况

  • pom.xml

    • 依赖管理 应该很熟悉了呀

  • README.md

    • 项目说明文档 每个项目都有

  • ry.bat

  • ry.sh

    • 管理后端的

ruoyi-admin

  • com.ruoyi.web

    • 这里就是系统前端相对应的后台服务部分

      • controller:通用功能的前端控制器。若依有一个很有意思的点,那就是它的代码的前端控制器,mapper,service不是放在同一个模块里的,而是分开来放。

        • common:通用的东西存放的地方

          • 一个验证码生成验证,一个文件资源的操作验证

        • monitor:系统监控功能

          • CacheController

            • 缓存管理,通过Spring Data Redis来实现,博主也不懂具体细节,只是有所耳闻

          • ServerController

            • 服务器信息获取接口,只有拥有monitor:server:list 权限的人才能访问

          • SysLogininforController

            • 一个系统登录的日志记录类,通过ruoyi-system中的代码来操作,而system中通过异步工厂和操作SysOperLog来实现各种日志功能

          • SysOperlogController

            • 系统操作日志记录类,实现方式一样

          • SysUserOnlineController

            • 用户监控,查看用户列表和强制退出用户功能

        • system

          • controller的代码存放在ruoyi-admin中的system,而ruoyi-systeam中存放了实体类、mapper、service。这个文件夹下面各种系统通用功能,比如角色管理的增删改查,比如使用ip+端口号访问的页面显示、数字字典等等

            • 这种设计算是在admin中重点重视配置、前端表现。而system则负责具体的业务逻辑和代码。分离的不错。之前做项目的时候,如果没有这样的模块分散,那配置文件和逻辑处理代码乌泱泱的在一块,看着懵懂。

        • tool:工具类存放的地方

          • 这里只存放一个测试请求的类,一个测试用户的类

      • core.config:存放核心配置,在这里存放了Swagger的配置

  • RuoYiApplication

    • 整个项目的启动类,没有什么好说的

  • RuoYiServletInitializer

    • 这个关系到SpringBoot的启动原理,SpringBoot内置了一个tomacat,然后使用约定大于配置的思想,给你配置了一些常见的项。所以使用SpringBoot能够如此方便快捷。而这个类的作用就是能让SpringBoot项目不使用自己内部的tomacat来运行,而是可以使用外部的Servlet容器。

      • tomacat是一个Servlet容器,但Servlet容器不止tomacat。Servlet也没有什么神秘的,可以简单理解为一个驱动程序,不过驱动程序链接了操作系统和电脑硬件。而servlet容器链接着java应用程序和http服务器

ruoyi-system

  • 整个模块都没什么好讲的,在认识若依上。这个模块的作用就是实现ruoyi-admin中的种种功能。系统日志、增删改查。

    • 其他模块都会有自己的config之类的,只有这个没有。因为这个模块是一个附属模块

ruoyi-common

  • annotation:自定义注解

    • 各种注解

  • config:全局配置

    • SensitiveJsonSerializer

      • 做了个数据脱敏处理,使得普通用户看不到一些内容。比如电话号码遮盖几位

    • RuoYiConfig

      • 配置了各种文件、图片上下传的路径

  • constant:通用常量和通用枚举一个概念,枚举和常量类的各有各好,枚举类本身是一种类型,所以使用枚举类来定义系统的各种状态(成功、失败)。而常量类的值可以是数字、字母。

  • core:核心控制(重点)

    • controller里面有一个BaseController

  • enums:通用枚举

    • 枚举没啥好讲的呀,项目中使用枚举一般来说都是添加项目可维护性。不然改一个值,得到处找代码

  • exception:通用异常(重点)

    • 各种异常

  • filter:过滤器

    • 各种过滤器,还有防止xss的过滤器

  • utils:通用工具类

    • 不解释了呀,工具类挺多的,我还看到获取地理位置之类的

  • xss:xss校验

    • xss就是有人编写一段js脚本给浏览器执行,浏览器一执行就把cookie、用户聊天记录暴露了。我虽然不知道咋处理,但我一读代码,看若依的操作检测你的输入是不是html标签,如果是,不让你输入,并且提示不允许任何脚本执行

      • 也确实是个办法,应该没有人会把<script>xxxx</script>作为自己的用户名吧?

ruoyi-generator

ruoyi-quartz

ruoyi-framework

  • aspectj:一些自定义的AOP

  • config:各种系统配置,挑几个讲一讲吧

    • DruidConfig.java

      • 高性能数据连接池DruidConfig

    • FastJson2JsonRedisSerializer.java

    • MyBatisConfig.java

    • RedisConfig.java

      • redis缓存机制配置文件

    • ResourcesConfig.java

      • 静态资源配置文件

    • SecurityConfig.java

      • spring的安全配置文件

    • ServerConfig.java

      • 获取服务器相关信息的

    • PermitAllUrlProperties.java

      • 配置公开的URL

  • datacource

    • 用于需要多个数据库的情况

  • interceptor

    • 一个防止重复提交的东西

  • manager

    • 异步处理,将任务执行和主线程分开

  • security

    • 权限控制

  • web

    • domain

      • 硬件本身信息和jvm

    • exception

      • 全局异常处理器

    • service

      • 处理权限与用户注册等


img


你好,我是Qiuner. 为帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiunergitee https://gitee.com/Qiuner 🌹

如果本篇文章帮到了你 不妨点个吧~ 我会很高兴的 😄 (^ ~ ^) 。想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎。

代码都在github或gitee上,如有需要可以去上面自行下载。记得给我点星星哦😍

如果你遇到了问题,自己没法解决,可以去我掘金评论区问。私信看不完,CSDN评论区可能会漏看 掘金账号 https://juejin.cn/user/1942157160101860 掘金账号


更多专栏:


掘金账号 CSDN账号

感谢订阅专栏 三连文章
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。