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

作者介绍:本人笔名姑苏老陈,从事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.mzph.cn/news/791434.shtml

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

相关文章

mysql 磁盘空间100%

MySQL大事务可能会导致过多的占用临时文件,导致磁盘空间撑满的问题 本例说明下binlog cache产生的临时文件 案例复现 调小binlog_cache_size,让DML使用临时文件 使用存储过程模拟大事务 创建表 create table t1( id int AUTO_INCREMENT, name varchar…

Rust---复合数据类型之字符串与切片(2)

目录 字符串操作删除 (Delete)连接 (Concatenate) 字符串转义 前情回顾: Rust—复合数据类型之字符串(1) 字符串操作 删除 (Delete) 删除方法仅适用于 String 类型,分别是: pop(),remove(),truncate()&a…

【Redis系列】Redis安装与使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

保研线性代数复习3

一.基底(Basis) 1.什么是生成集(Generating Set)?什么是张成空间(Span)? 存在向量空间V(V,,*),和向量集(xi是所说的列向量&#xff…

大模型prompt技巧——思维链(Chain-of-Thought)

1、Zero-shot、One-shot、Few-shot 与fintune prompt的时候给出例子答案,然后再让模型回答。 2、zero-shot-CoT “Let’s think step by step”有奇迹效果 3、多数投票提高CoT性能——自洽性(Self-consistency) 多个思维链,然后取…

WordPress 6.5 “里贾纳”已经发布

WordPress 6.5 “里贾纳”已经发布,其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家,以超越流派而闻名,她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…

修改element-ui table组件展开/收起图标、支持点击行展开/收起、隐藏不可展开行得图标

Element中table默认支持的,展开和收起功能,如下: 针对表格的展开收起,本文改造的主要有3点: 1、修改展开/收起的图标; 2、对于不支持展开/收起的行,隐藏图标; 3、点击行&#xff0…

windows10 上安装 docker

windows 10 上安装 docker 官方目前给的方案是利用 Docker Desktop 来安装 docker 环境 一、安装前准备工作 1.1 检查系统要求 Windows 10 64 位:Home 或 Pro 2004(内部版本 19041)或更高版本,或者 Enterprise 或 Education 1…

Redis中的复制功能(四)

复制功能 步骤2:建立套接字连接 在SLAVEOF命令执行之后,从服务器将根据命令所设置的IP地址和端口,创建连向主服务器的套接字连接,如图所示。如果从服务器创建的套接字能成功连接(connect)到主服务器,那么从服务器将为这个套接字…

软考109-上午题-【计算机网络】-网络设备

一、网络设备 1-1、物理层的互联设备 物理层的设备:中继器、集线器 1、中继器 中继器,可以使得两个链路在物理层上互联。 可以使得信号再生,信号增强。因此,中继器使得接受用户,收到衰减很小的原始信号 2、集线器&a…

【Java EE】关于Maven

文章目录 🎍什么是Maven🌴为什么要学Maven🌲创建⼀个Maven项目🌳Maven核心功能🌸项目构建🌸依赖管理 🍀Maven Help插件🎄Maven 仓库🌸本地仓库🌸私服 ⭕总结 …

Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10)

原文:Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10) - 知乎 阿里的FunAsr对Whisper中文领域的转写能力造成了一定的挑战,但实际上,Whisper的使用者完全可以针对中文的语音做一些优化的措施,换句话说,…

前端:登录界面

效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

SpringBoot整合ELK8.1.x实现日志中心教程

目录 背景 环境准备 环境安装 1.JDK安装 2.安装Elasticsearch 3.安装zookeeper 4.安装Kafka 5.安装logstash 6.安装file beat 解决方案场景 1.日志采集 1.1 应用日志配置 1.1.1 创建logback-spring.xml文件 1.1.2 创建LoggerFactory 1.1.3 trace日志的记录用法 …

Linux上管理文件系统

Linux上管理文件系统 机械硬盘 机械硬盘由多块盘片组成&#xff0c;它们都绕着主轴旋转。每块盘片上下方都有读写磁头悬浮在盘片上下方&#xff0c;它们与盘片的距离极小。在每次读写数据时盘片旋转&#xff0c;读写磁头被磁臂控制着不断的移动来读取其中的数据。 所有的盘片…

实操:Dropzone.js实现文件上传

&#x1f3e0;官网 点我前往 &#x1f953;依赖 <script src"https://unpkg.com/dropzone5/dist/min/dropzone.min.js"></script> <link rel"stylesheet" href"https://unpkg.com/dropzone5/dist/min/dropzone.min.css" type&…

手搓链表(java)(不完整)

手搓链表&#xff08;java&#xff09;&#xff08;不完整&#xff09; 文章目录 手搓链表&#xff08;java&#xff09;&#xff08;不完整&#xff09;前言一、代码1.MyLinkedList类&#xff1a;2.测试类&#xff1a; 总结 前言 提示&#xff1a;以下是本篇文章正文内容&…

LeetCode_876(链表的中间结点)

//双指针//时间复杂度O(n) 空间复杂度O(1)public ListNode middleNode(ListNode head) {ListNode slowhead,fast head;while (fast!null && fast.next!null){slow slow.next;fast fast.next.next;}return slow;} 1->2->3->4->5->null 快指针移动两个…

Linux中的shell脚本之流程控制循环遍历

3 条件判断 4 流程控制语句 1&#xff09;if 语句 案例&#xff0c;用户输入用户名和密码&#xff0c;判断用户名是否是admin,密码是否是123,如果正确&#xff0c;则显示登录成功 首先我创建了shell文件&#xff0c;touch getpawer 其中getpawer 是我自己命的名 #!/bin/bas…