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

作者介绍:本人笔名姑苏老陈,从事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中若依管理后台系统的新功能开发,以兴趣爱好信息管理模块开发为示例,如何进行开发编码。

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

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

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

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

相关文章

图的应用解析

01.任何一个无向连通图的最小生成树(B )。 A.有一棵或多棵 B.只有一棵 C.一定有多棵 D.可能不存在 02.用Prim算法和Kruskal算法构造图的最小生成树&#xff0c…

使用ffmpeg将视频解码为帧时,图像质量很差

当使用ffmpeg库自带的ffmpeg.exe对对视频进行解帧或合并时,结果质量很差。导致这种原因的是在使用ffmpeg.exe指令进行解帧或合并时使用的是默认的视频码率:200kb/s。 如解帧指令: ffmpeg.exe -i 600600pixels.avi -r 2 -f image2 img/%03d.…

typdef:深入理解C语言中typdef关键词的用法

typedef:C语言中的类型重命名关键词 在C语言中,typedef 是一个非常有用的关键词,它允许我们为现有的数据类型定义一个新的名称。这不仅使得代码更加清晰易读,还提高了代码的可维护性。在这篇博客中,我们将深入探讨 ty…

Native Instruments Kontakt 7 for Mac v7.9.0 专业音频采样

Native Instruments Kontakt 7是一款强大的软件采样器,它允许用户从各种来源采样音频并进行编辑和处理。它包含大量预设采样库,包括乐器、合成器、鼓组和声音效果等。此外,Kontakt 7还允许用户创建自己的采样库,以便根据自己的需要…

vue2源码解析——vue中如何进行依赖收集、响应式原理

vue每个组件实例vm都有一个渲染watcher。每个响应式对象的属性key都有一个dep对象。所谓的依赖收集,就是让每个属性记住它依赖的watcher。但是属性可能用在多个模板里,所以,一个属性可能对应多个watcher。因此,在vue2中&#xff0…

NineData云原生智能数据管理平台新功能发布|2024年3月版

数据库 DevOps - 大功能升级 SQL 开发早期主要提供 SQL 窗口(IDE)功能,在产品经过将近两年时间的打磨,新增了大量的企业级功能,已经服务了上万开发者,覆盖了数据库设计、开发、测试、变更等生命周期的功能…

python的pip如何升级

升级pip的方法如下: 打开命令行工具。在Windows系统中,可以通过按下WinR键,然后输入"cmd"来打开命令提示符;在Mac或Linux系统中,可以直接打开终端。检查当前pip版本。在终端或命令行中输入以下命令&#…

《C Prime Plus》02

1. UNIX 系统 C语言因UNIX系统而生,也因此而流行,所以我们从UNIX系统开始(注意:我们提到的UNIX还包含其他系统,如FreeBSD,它是UNIX的一个分支,但是由于法律原因不使用该名称)。 UN…

蓝桥杯备考

目录 P8823 [传智杯 #3 初赛] 期末考试成绩 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码 P8828 [传智杯 #3 练习赛] 直角三角形 题目描述 输入格式 输出格式 输入输出样例 代码 P8833 [传智杯 #3 决赛] 课程 题目背景 题目描述 输入格式 输出格式…

并发编程之线程池的应用以及一些小细节的详细解析

线程池在实际中的使用 实际开发中,最常用主要还是利用ThreadPoolExecutor自定义线程池,可以给出一些关键的参数来自定义。 在下面的代码中可以看到,该线程池的最大并行线程数是5,线程等候区(阻塞队列)是3,即…

鸿蒙OS开发实例:【组件化模式】

组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件化;与Android端的组件化相比,HarmonyOS的组件化可以说实现起来就颇费一番周折,因为…

还得是抖音,字节推出竖屏视频理解数据集,入选CVPR2024

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 短视频在当下社交媒体逐渐成为主导的视频格式。传统视频处理技术和研究一般都专注于横屏视频…

[HackMyVM]靶场Boxing

难度:Medium kali:192.168.56.104 靶机:192.168.56.143 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.143 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 19:25 CST Nmap scan report for staging-env.boxing.hmv (192.168.56.143) Host …

音频转换工具 Bigasoft FLAC Converter for Mac

Bigasoft FLAC Converter for Mac是一款专为Mac用户设计的音频转换工具,它能够将FLAC音频文件高效、高质量地转换为其他常见的音频格式,如MP3、AAC等。这款软件具有直观易用的界面,使用户能够轻松上手,无需复杂的操作步骤即可完成…

Celery的任务流

Celery的任务流 在之前调用任务的时候只是使用delay()和apply_async()方法。但是有时我们并不想简单的执行单个异步任务,比如说需要将某个异步任务的结果作为另一个异步任务的参数或者需要将多个异步任务并行执行,返回一组返回值,为了实现此…

python文件处理:解析docx/word文件文字、图片、复选框

前言 因为一些项目原因,我需要提供解析docx内容功能。本来以为这是一件比较简单的工作,没想到在解析复选框选项上吃了亏,并且较长一段时间内通过各种渠道都没有真正解决这一问题,反而绕了远路。 终于,我在github pytho…

9.图像中值腐蚀膨胀滤波的实现

1 简介 在第七章介绍了基于三种卷积前的图像填充方式,并生成了3X3的图像卷积模板,第八章运用这种卷积模板进行了均值滤波的FPGA实现与MATLAB实现,验证了卷积模板生成的正确性和均值滤波算法的MATLAB算法实现。   由于均值滤波、中值滤波、腐…

v-text 和v-html

接下来&#xff0c;我讲介绍一下v-text和v-html的使用方式以及它们之间的区别。 使用方法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-widt…

Redis的值有5种数据结构,不同数据结构的使用场景是什么?

文章目录 字符串缓存计数共享Session限速 哈希缓存 列表消息队列文章列表栈队列有限集合 集合标签抽奖社交需求 有序集合排行榜系统 字符串 缓存 &#xff08;1&#xff09;使用原生字符类型缓存 优点&#xff1a;简单直观&#xff0c;每个属性都支持更新操作 缺点&#xff1…

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

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