【项目技术介绍篇】若依项目代码文件结构介绍

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快的、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、代码文件结构介绍
        • (1)前端页面部分
        • (2)后端接口部分
        • (3)数据库表结构部分
        • (4)菜单配置部分
    • 三、总结

一、前言

由于本专栏项目实战学习,是以若依开源项目RuoYi-Cloud为示例。所以,本文介绍一下若依开源项目RuoYi-Cloud中若依管理后台系统的代码文件结构,以管理后台系统中的岗位管理模块为示例。

  • 若依项目RuoYi-Cloud简介
    若依项目RuoYi-Cloud 是一个 Java EE 企业级的开源免费的快速开发平台,是一个基于Spring Boot、Spring Cloud & Alibaba的微服务的权限管理系统。如果想快速的开发一个Java EE 企业级项目,可以在若依项目的基础上,开发定制自己的项目。尤其是如果要开发一个后台管理系统,由于若依开源项目中已经内置完整的权限管理模块,所以能够更加快速的完成项目的开发工作;

  • 若依项目RuoYi-Cloud技术选型
    采用前后端分离的模式,微服务版本前端基于 Vue/Element UI ;
    ​ 后端采用Spring Boot、Spring Cloud & Alibaba微服务架构;
    ​ 注册中心、配置中心选型Nacos,权限认证使用Redis;
    ​ 流量控制框架选型Sentinel,分布式事务选型Seata;

  • 若依项目官方网站和文档地址
    若依官网地址:https://www.ruoyi.vip/
    若依演示地址:https://vue.ruoyi.vip/login
    技术文档地址:https://doc.ruoyi.vip/ruoyi-cloud/
    代码下载地址:https://gitee.com/y_project/RuoYi-Cloud

二、代码文件结构介绍

  • 在若依项目RuoYi-Cloud中,编写一个简单的功能模块,需要编写哪些代码文件呢?

百度网盘代码下载地址:https://pan.baidu.com/s/10FyzBDDB1HHng7LUW3Rkkw?pwd=n8ci
提取码:n8ci

这里以岗位管理模块开发为示例,编写一个完整的岗位管理模块,大概包括前端页面部分、后端接口部分、数据库表结构部分以及菜单配置部分等四个部分的内容。

如下图所示:

在这里插入图片描述

(1)前端页面部分
  • index.vue:岗位管理模块view文件,用于控制页面布局展示等等,比如页面上输入框、按钮、列表、文本框等等组件,如何排列展示;各种组件点击后如何交互等等;

  • post.js:岗位管理模块请求文件,用于跟后端服务器发送数据请求等等,比如页面上点击搜索按钮后,给后端服务器发送请求,获取数据等等;

(2)后端接口部分
  • SysPostController.java:岗位管理模块controller控制层文件;

  • ISysPostService.java:岗位管理模块service业务层接口定义文件;

  • SysPostServiceImpl.java:岗位管理模块service业务层接口实现文件;

  • SysPostMapper.java:岗位管理模块dao数据持久层接口定义文件;

  • SysPostMapper.xml:岗位管理模块dao数据持久层接口实现文件;

  • SysPost.java:岗位管理模块pojo实体类文件;

后端包括哪三层架构,调用关系是什么样的?

后端接口主要是包括controller层、service层和dao层,是应用程序中常见的三层架构;它们之间的调用关系如下:

controller层,作为控制层,负责接收用户请求并将请求传递给service层,之后将处理完成的结果返回给客户端。

service层,作为业务层,位于controller层和dao层之间,负责业务处理。它根据业务需求调用dao层进行数据操作,并封装了一系列的操作以及对外提供业务功能的调用接口。service层的设计旨在封装业务逻辑,提高代码的复用性和可维护性。

dao层。作为数据持久层,位于最底层,负责与数据库进行交互,提供对数据的持久化操作。dao层定义了用于数据访问的接口或类,通常使用的数据访问技术MyBatis等来简化数据库操作。

总的来说,这三层之间的关系和调用顺序反映了应用程序的设计原则,即保持代码的清晰、可维护和可扩展。通过依赖注入和配置的方式,这三层在框架中形成了一个清晰的层次结构,实现了数据访问、业务逻辑处理和请求响应的协同工作。

除了三层架构之后,另外,还包括pojo(Plain Ordinary Java Object)实体类文件,可以理解为简单的实体类,主要用于定义与数据库对象应的属性,方便操作数据库中的数据表;

(3)数据库表结构部分
  • sys_post.sql:岗位管理模块建表脚本,用于在数据库中,创建对应的数据表,存储和管理用户界面上收集的数据;
(4)菜单配置部分
  • postMenu.sql:岗位管理模块配置菜单脚本,用于生成若依管理后台系统中左侧的菜单信息。配置完成后,我们可以在若依管理后台系统中左侧的菜单栏中,找到岗位管理菜单。

三、总结

以上,介绍了若依开源项目RuoYi-Cloud中若依管理后台系统的代码文件结构。另外,对三层架构以及它们之间的调用关系,也做了简单的介绍。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/297385.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

55 npm run serve 和 npm run build 的分包策略

前言 这里我们来看一下 vue 这边 打包的时候的一些 拆分包的一些策略 我们经常会使用到 npm run build 进行服务的打包 然后 打包出来的情况, 可能如下, 可以看到 chunk-vendors 是进行了包的拆分, 我们这里就是 来看一下 这里 npm run build 的时候的, 一个分包的策略 测试…

【Linux实验室】NFS、DHCP的搭建

NFS、DHCP的搭建 1、nfs服务搭建及测试什么是NFS?环境准备服务端机器安装nfs-utils和rpcbind包启动NFS服务创建/data/NFSdata目录,配置nfs文件启动服务挂载测试在服务端在共享目录下创建文件测试在客户端在共享目录下创建文件 2、dhcp服务搭建及测试什么…

如何保护IP地址不被泄露?

当互联网成为每个家庭的重要组成部分后,IP地址就成了你的虚拟地址。您的请求从该地址开始,然后 Internet 将消息发送回该地址。那么,您担心您的地址被泄露吗? 对于安全意识高或者某些业务需求的用户,如果您正在寻找保护…

element-ui empty 组件源码分享

今日简单分享 empty 组件的源码实现,主要从以下三个方面: 1、empty 组件页面结构 2、empty 组件属性 3、empty 组件 slot 一、empty 组件页面结构 二、empty 组件属性 2.1 image 属性,图片地址,类型 string,无默认…

Facebook轮播广告是什么?投放过程中有哪些需要注意的吗?

轮播广告是Facebook广告形式中的一种,可以把3—5个广告合并到一个可滚动的广告单元中。轮播广告会出现在新鲜事即News Feed中,是独立站卖家常用的一种广告形式 为什么选择轮播广告? 转化率更高:相较于单图广告,轮播广…

LeetCode-热题100:2. 两数相加

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

Day43 动态规划 part05

Day43 动态规划 part05 1049.最后一块石头的重量II 我的思路: 提示说和划分两个和相等的子集差不多,猛然想到,这道题不就是划分子集,用sum - 和最大*2 代码就是划分和相同的子集的变形 解答: class Solution {public int last…

Cache多核之间的一致性MESI

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 思考: 1、为什么要学习MESI协议? 哪里用到了?你确定真的用到了? 2、MESI只是一个协议,总得依赖一个硬件去执行该协议吧&#xff0c…

蓝桥杯 --- 日期问题模板

目录 1.如何判断闰年 2.如何遍历当前年份的每一天 3.如果想要输出某一年某一天到某一年某一天之间一共有多少天。 4.精确到具体周几到周几的问题分析 5.如何直接通过一层for循环枚举年月日 习题: 蓝桥杯竞赛特别喜欢考日期问题,今天给大家分享一下…

VMware虚拟机安装Linux教程

以管理员身份运行VMware 按一下win键不然显示不全 重启即可。

什么是智慧公厕?智慧旅游下的智慧公厕功能和特点

智慧旅游下的智慧公厕功能和特点?智慧旅游是景区、公园、游乐场、文化场馆等领域的一种信息化解决方案,智慧公厕是智慧旅游极为重要的一部分,能大大提升游客满意度。智慧公厕采用物联网、互联网、大数据、云计算等技术,实现旅游景…

【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…

picGo图床搭建gitee和smms(建议使用)

picGoGitee 这个需要下载gitee插件, 因为官方频繁的检索文件类型, 有时候也会失效 如果没有特殊要求平时存个学习的要看图中文字的重要的图片建议就是smms, 免费也够用! 图片存本地不方便, 各种APP中来回传还会失帧损失画质, 所以你值得往下看 picGosmms 建议使用这个, sm…

Linux gcc day3

find命令(importance): 语法:find pathname -options find /root -name test.c which命令: which [指令] 只搜索指令,在什么位置下 为什么文件夹带有颜色呢? 科普补充alias命令: ali…

银行数字化转型导师坚鹏:银行数字化转型给分行带来的8大价值

银行数字化转型给分行带来的8大价值 银行数字化转型对不仅对总行产生了深远影响、给总行带来了新质生产力,对分行也会产生重要价值,银行数字化转型导师坚鹏从以下8个方面进行详细分析,相信能够给您带来重要启发,从而加速银行分行…

精读 Generating Mammography Reports from Multi-view Mammograms with BERT

精读(非常推荐) Generating Mammography Reports from Multi-view Mammograms with BERT(上) 这里的作者有个叫 Ilya 的吓坏我了 1. Abstract Writing mammography reports can be errorprone and time-consuming for radiolog…

clickhouse 源码编译部署

clickhouse 源码编译部署 版本 21.7.9.7 点击build project,编译工程,经过一定时间(第一次编译可能几个小时,后续再编译,只编译有改动的文件)生成release目录 在cmake-build-release → programs目录下…

Java集合(个人整理笔记)

目录 1. 常见的集合有哪些? 2. 线程安全的集合有哪些?线程不安全的呢? 3. Arraylist与 LinkedList 异同点? 4. ArrayList 与 Vector 区别? 5. Array 和 ArrayList 有什么区别?什么时候该应 Array而不是…

STM32L4R9 的 QuadSPI Flash 通讯速率不理想

1. 引言 客户反应 STM32L4R9 同 QSPI Flash 通讯,测出来的读取速率为 10MB/s, 和理论值相差较大。 2. 问题分析 按照客户的时钟配置和 STM32L4R9 的数据手册中的数据,OSPI 读数速率为 10MB/s 肯定存在问题。同时我们也可以在 AN4760 应用手…

c++20协程详解(三)

前言 前面两节我们已经能够实现一个可用的协程框架了。但我们一定还想更深入的了解协程,于是我们就想尝试下能不能co_await一个协程。下面会涉及到部分模板编程的知识,主要包括(模板偏特化,模板参数列表传值,模板函数…