【项目新功能开发篇】开发编码

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

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

文章目录

    • 一、前言
    • 二、开发编码
        • (1)执行数据库脚本,创建数据库表
        • (2)使用代码生成工具,生成代码
        • (3)复制代码到工程中,修改&编译代码
        • (4)配置新模块的菜单
        • (5)验证新模块的功能
    • 三、总结

一、前言

由于本专栏项目实战学习,是以若依开源项目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中,开发新的功能模块,如何进行开发编码呢?

这里以兴趣爱好信息管理模块开发为示例,介绍如何进行开发编码。

(1)执行数据库脚本,创建数据库表

​ 首先,我们在ry-cloud数据库中执行数据库脚本sys_interest.sql,创建兴趣爱好信息表sys_interest。
在这里插入图片描述

兴趣爱好信息表sys_interest创建表的脚本内容如下:

CREATE TABLE `sys_interest` (
 `interest_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '兴趣爱好ID',
 `interest_code` varchar(64) NOT NULL COMMENT '兴趣爱好编码',
 `interest_name` varchar(128) NOT NULL COMMENT '兴趣爱好名称',
 `interest_sort` int(4) NOT NULL COMMENT '显示顺序',
 `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
 `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
 `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
 `update_time` datetime DEFAULT NULL COMMENT '更新时间',
 `remark` varchar(500) DEFAULT NULL COMMENT '备注',
 PRIMARY KEY (`interest_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='兴趣爱好信息表';
(2)使用代码生成工具,生成代码

之后,进入若依管理系统,打开系统工具》代码生成菜单,点击导入按钮,进入表导入窗口;
在这里插入图片描述

之后,选中要导入的表名称,把表导入进来(PS:选择兴趣爱好信息表sys_interest);
在这里插入图片描述

之后,点击生成代码,系统会自动生成一个代码压缩包ruoyi.zip,并下载到本地磁盘。
在这里插入图片描述

之后,解压缩后,可以看到压缩包ruoyi.zip中,包括三个部分的内容。

  • main :兴趣爱好信息模块的后端代码;
  • vue:兴趣爱好信息模块的前端代码;
  • interestMenu.sql:配置兴趣爱好信息模块菜单的数据库脚本;
    在这里插入图片描述
(3)复制代码到工程中,修改&编译代码

之后,把后端代码复制到对应的工程目录下面;
在这里插入图片描述
之后,把前端代码复制到对应的工程目录下面;
在这里插入图片描述
之后,根据实际情况,修改代码。(PS:生成的代码已满足功能要求,可以不做修改。)

修改完成后,进行代码编译。(PS:需要检查是否编译成功。)
在这里插入图片描述

编译通过后,启动应用服务。(PS:检查一下各个应用服务是否启动成功)
在这里插入图片描述

之后,启动前端工程;

在这里插入图片描述

(4)配置新模块的菜单

之后,在ry-cloud数据库中执行数据库脚本interestMenu.sql,配置兴趣爱好管理模块的菜单;

兴趣爱好管理模块菜单配置的数据库脚本内容如下:

-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息', '1', '1', 'interest', 'system/interest/index', 1, 0, 'C', '0', '0', 'system:interest:list', '#', 'admin', sysdate(), '', null, '兴趣爱好信息菜单');

-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();

-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:interest:query',        '#', 'admin', sysdate(), '', null, '');

insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:interest:add',          '#', 'admin', sysdate(), '', null, '');

insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:interest:edit',         '#', 'admin', sysdate(), '', null, '');

insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:interest:remove',       '#', 'admin', sysdate(), '', null, '');

insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('兴趣爱好信息导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:interest:export',       '#', 'admin', sysdate(), '', null, '');

之后,检查一下脚本是否执行成功;
在这里插入图片描述

(5)验证新模块的功能

最后,登录若依管理系统,查看和验证兴趣爱好信息管理模块的功能是否可以正常使用。
在这里插入图片描述

三、总结

以上,介绍一下若依开源项目RuoYi-Cloud中若依管理后台系统的新功能开发,以兴趣爱好信息管理模块开发为示例,如何进行开发编码。

在实际项目中,进行新功能模块开发编码时,开发人员并不是从零开始一句一句的敲代码,而是使用代码生成工具,先生成一些基本的代码文件。之后,再根据实际情况,进行代码修改和代码优化。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

练习 20 Web [HCTF 2018]admin

本题由于GitHub上的源码已经不见了,看了wp也没法复现,只用用保利破解的方式做题。 其他方法还有: Flask Session 伪造 https://blog.csdn.net/qq_46918279/article/details/121294915 暴力破解 打开后看到右上角有菜单栏 然后进入register界…

【THM】Nmap Post Port Scans(后端口扫描)-初级渗透测试

介绍 本房间是 Nmap 系列的最后一个(网络安全简介模块的一部分)。在这个房间中,我们重点关注端口扫描之后的步骤:特别是服务检测、操作系统检测、Nmap脚本引擎和保存扫描结果。 Nmap实时主机发现Nmap基本端口扫描Nmap高级端口扫描Nmap后端口扫描在本系列的第一个房间中,我…

​网络socket编程(二)——面向流的TCP编程及测试(SocketTool)、Wireshark软件使用

目录 一、书接上回(select()函数使用注意事项) 二、面向流(TCP)的socket编程 2.1 TCP服务端编程和测试 2.1.1 TCP服务器原理流程图 2.1.2 TCP服务端编程实战 2.1.3 测试 2.2 TCP客户端编程和测试 三、Wireshark抓包软件的使用 3.1 Wireshark是什…

vue 数据埋点

最近菜鸟做项目,需要做简单的数据埋点,不是企业级的,反正看渡一的视频,企业级特别复杂,包括但不限于:错误收集、点击地方、用户行为…… 菜鸟的需求就是简单收集一下用户的ip、地址、每个界面的访问时间&a…

doccano标注工具|为机器学习建模做数据标注

目录 一、标记流程 二、配置环境 2.1 安装 2.2 运行doccano 三、案例 3.1 创建项目 3.2 上传数据 3.3 定义标签 3.4 添加成员 3.5 开始标注 3.6 导出数据 3.7 导出数据 doccano doccano是开源的数据…

在ssh 工具 Linux screen会话中使用鼠标进行上下滚动

经过几次发现 除xshell外, WindTerm finalshell MobaXterm 都是进入会话后,发现其界面无法滚动屏幕向上查看 如果想要在Linux screen会话中使用鼠标进行上下滚动。必须首先进入该screen的回滚(scrollback模式)才能进行上下滚动 第一步&#xff…

小白理智进入IT行业

职业测试 🔔 0基础请先按照以下步骤做一遍,试试自己的毅力 1️⃣ 请在b站搜索王佩丰vba,然后试着看一下 2️⃣ 看完视频,有两种结果 😭 视频看到一半就终止,代码只会复制粘贴。 🎉 看完全部视…

MHA高可用-解决MySQL主从复制的单点问题

目录 一、MHA的介绍 1.什么是 MHA 2.MHA 的组成 2.1 MHA Node(数据节点) 2.2 MHA Manager(管理节点) 3.MHA 的特点 4. MHA工作原理总结如下: 二、搭建 MySQL MHA 实验环境 …

mongoDB 优化(2)索引

执行计划 语法: db.collection_xxx_t.find({"param":"xxxxxxx"}).explain(executionStats) 感觉这篇文章写得很好,可以参考 MongoDB——索引(单索引,复合索引,索引创建、使用)_mongo …

软考高级架构师:CISC (复杂指令集计算机) 和 RISC (精简指令集计算机)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)

开源博客项目Blog的App.Hosting项目为MVC架构的,主要定义或保存博客网站前台内容显示页面及后台数据管理页面相关的控制器类、页面、js/css/images文件,页面使用基于layui的Razor页面(最早学习本项目就是想学习layui的用法,不过最…

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts (或菜单)打…

UE5启用SteamOS流程

一、安装OnlineSubsystemSteam插件 1、在UE里安装OnlineSubsystemSteam 2、设置默认开始地图 3、设置DefaultEngine.ini文件: 打开项目根目录/Config/DefaultEngine.ini文件 打开官网的配置说明 复制并粘贴到该文件中 4、设置运行模式 5、测试 确保Steam平台已…

Ansible批量操作(上传文件、删除文件指定文件内容、执行sh文件等)

官方网站 https://www.ansible.com/ 一、Ansible 简介 1、Ansible是新出现的自动化运维工具,完全基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行…

【详解】Windows系统安装Nginx及简单使用

【详解】Windows系统安装Nginx及简单使用 一、Nginx是什么? “Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。”Nginx 是一款 http 服…

RocketMQ是什么?

文章目录 一、RocketMQ是什么?二、RocketMQ 应用场景三、RocketMQ 优缺点1.优点2、缺点 一、RocketMQ是什么? RocketMQ 是一款纯 java、分布式、队列模型的消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。 二、Rocke…

软件杯 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习YOLO抽烟行为检测 该项目较为新颖,适合作为竞赛课…

BGP-(as-path-filter)

BGP-as-path-filter,缺省 as-path-filter,正则表达式,as-path过滤器,对于BGP的as-path属性实际上可以看成是一个包含空格的字符串。 特点:1、通过对BGP路由的as-path属性进行匹配达到对BGP路由的过滤。 2、在route-…

OpenHarmony实战:轻量级系统之移植验证

OpenHarmony芯片移植完成后,需要开展OpenHarmony兼容性测试以及芯片SDK功能性测试。除可获得测试认证之外,还可以在开发阶段提前发现缺陷,大幅提高代码质量。 OpenHarmony兼容性测试 OpenHarmony兼容性测试是XTS(OpenHarmony生态…

传统模型用腻了?GCN图卷积神经网络一键实现西储大学轴承故障诊断!发文新思路!

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 数据介绍与故障诊断讲解 1.数据…