在若依框架基础上开发新功能

news2024/9/28 5:30:55

本文介绍如何在若依框架(不分离版本)的基础上开发新功能。

目录

运行若依框架

下载若依框架代码

IDEA打开若依框架代码

初始化数据库

修改数据库配置

运行项目

设计数据库

数据表命名规则

建表及初始化数据

开发新功能

后端CRUD功能

前端接口


运行若依框架

下载若依框架代码

下载若依框架代码,下载地址

IDEA打开若依框架代码

将若依框架代码解压到合适目录,使用IDEA打开若依框架代码

初始化数据库

新建数据库,数据库名称可以自定义,例如:rysjz

create database rysjz;

使用Navicat将RuoYi-master/sql目录下的ry_20240601.sql文件导入到MySQL rysjz数据库中

导入成功,看到如下表:

修改数据库配置

修改ruoyi-admin模块下的application-druid.yml的数据库配置

运行项目

浏览器访问

localhost

输入验证码,登录

根据提示修改登录密码。

设计数据库

根据项目需求,设计合适的数据表。这里用两张表举例,分别是类型表和文章表。

数据表命名规则

业务板块_具体表,例如:新闻_类型,表名为:xw_type

建表及初始化数据

类型表

CREATE TABLE `xw_type` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `type_name` varchar(50) COMMENT '类型名称',
  PRIMARY KEY (`id`)
) COMMENT='业务类型表';

INSERT INTO `xw_type`(`type_name`) VALUES ('要闻');
INSERT INTO `xw_type`(`type_name`) VALUES ('贵阳');
INSERT INTO `xw_type`(`type_name`) VALUES ('时政');
INSERT INTO `xw_type`(`type_name`) VALUES ('科技');
INSERT INTO `xw_type`(`type_name`) VALUES ('体育');
INSERT INTO `xw_type`(`type_name`) VALUES ('财经');
INSERT INTO `xw_type`(`type_name`) VALUES ('社会');
INSERT INTO `xw_type`(`type_name`) VALUES ('娱乐');
INSERT INTO `xw_type`(`type_name`) VALUES ('游戏');
INSERT INTO `xw_type`(`type_name`) VALUES ('数码');
INSERT INTO `xw_type`(`type_name`) VALUES ('旅游');
INSERT INTO `xw_type`(`type_name`) VALUES ('美食');
INSERT INTO `xw_type`(`type_name`) VALUES ('端午');

文章表

CREATE TABLE `xw_article` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `title` varchar(50) COMMENT '标题',
  `tags` varchar(255) COMMENT '标签',
  `time` datetime COMMENT '发表时间',
  `gtnum` int COMMENT '浏览数量',
  `content` varchar(2000) COMMENT '内容',
  `imgUrl` varchar(255) COMMENT '图片',
  `type` int COMMENT '类型',
  `remark` varchar(255) COMMENT '备注',
  PRIMARY KEY (`id`)
) COMMENT='文章表';

INSERT INTO `xw_article` VALUES (1, '一汽-大众全新迈腾疑似配置曝光 7月9日正式上市', '[\'汽车\',\'一汽大众\']', '2024-07-03 09:37:13', 350, '近日,一汽-大众官方宣布,全新第9代迈腾(参数丨图片)将于7月9日上市。网络上曝光了疑似全新迈腾配置,据悉,新车将有5款车型销售,搭载1.5T和2.0T发动机,车型包括1.5T尊尚版、1.5T尊享版、2.0T尊享版、2.0T尊贵版、2.0T至尊版。作为换代产品,全新迈腾对外观及内饰进行重新设计,将搭载大疆新发布的智能驾驶方案。简单回顾一下这款车的外观,新迈腾出自于大众全新的B9平台,但与欧版的帕萨特还是略有差别。新车整体设计风格更偏向于年轻,运动元素成为了新迈腾的属性。而且新车的尺寸明显加长,这对于内部空间的优化起到了较为关键的作用。', 'https://nimg.ws.126.net/?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2024%2F0702%2Fbd543a05j00sfzipo001ac000sg00lcc.jpg&thumbnail=660x2147483647&quality=80&type=jpg', 4, 'https://www.163.com/auto/article/J65O6II00008856R.html');
INSERT INTO `xw_article` VALUES (2, '极氪的2024上半年:月销破2万,累销同比翻倍增长', '[\'汽车\',\'一汽大众\']', '2024-07-02 17:10:32', 100, '继5月圆梦IPO后,极氪6月销量继续创历史新高,达到20,106台,同比大增89%,环比增长8%。这也是极氪单月销量首次跨过2万关口,达成全新的交付里程碑。\r\n\r\n2024上半年,极氪动作频频,持续发力。在多款产品的重磅出击下,今年1-6月,极氪共交付87,870台,同比增长106%,问鼎2024年20万以上中国纯电品牌销量冠军。其中,极氪001连续三个月交付破万,并稳居25万以上纯电车型销冠。', 'https://nimg.ws.126.net/?url=http%3A%2F%2Fcms-bucket.ws.126.net%2F2024%2F0702%2F1b661623p00sfznwj0090c000z700jtc.png&thumbnail=660x2147483647&quality=80&type=jpg', 4, 'https://www.163.com/auto/article/J63VNTBC000884ML.html');
INSERT INTO `xw_article` VALUES (3, '亚航开通第12条直飞航线,助力中泰旅游升温', '[\'旅游\',\'飞机\']', '2024-07-01 10:04:12', 49, '6 月 28 日,亚洲航空宣布将于7 月 1 日开通北京大兴至曼谷廊曼的直飞航线。这是该航司目前在中国内地运营的第12条直飞曼谷航线,也是唯一一个从北京出发降落廊曼国际机场的直飞航班。\r\n\r\n据观察者网了解,该航线每天一班。最新预订数据显示,首航航班上座率已达85%。', 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0701%2F00545038j00sfx9lp007zd0018g00tmg.jpg&thumbnail=660x2147483647&quality=80&type=jpg', 11, 'https://www.163.com/dy/article/J60KUHU2051481US.html');
INSERT INTO `xw_article` VALUES (4, '两万元档电视销量第一!华为要推超100英寸智慧屏:影院级效果拉满', '[\'数码\',\'电视\']', '2024-07-02 17:25:06', 200, '快科技7月2日消息,据国内媒体报道称,华为打算推出一款新的智慧屏(电视),其尺寸会超过100寸。\r\n\r\n按照消息人士透露的情况,华为这款尺寸超100寸的电视,将主打别墅用户,各种影院级的效果拉满。\r\n\r\n至于这款新品的售价应该不会太便宜,应该也是五位数。作为参考,华为智慧屏V98发布价格为24999元(配备98英寸120Hz防眩光巨幕),目前在华为商城的售价为19999元。\r\n\r\n根据奥维云网的数据,2023年10月1日至2024年2月29日的时间段内,华为在两万元档位的电视市场中销量排名第一。', 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0630%2Fa65292d9j00sfvcwg000sd000go00b4g.jpg&thumbnail=660x2147483647&quality=80&type=jpg', 10, 'https://www.163.com/dy/article/J640IIB10511CPVM.html');

开发新功能

后端CRUD功能

生成代码

登录若依系统后,点击系统工具-->代码生成-->导入

选择需要生成CRUD代码的数据表

点击编辑

点击生成信息,修改生成模块名、生成包路径、上级菜单,如下: 

第二张表也这样修改。

生成代码:点击生成

解压生成的代码,看到如下目录及文件

main的子目录如下

└───main
    ├───java
    │   └───com
    │       └───ruoyi
    │           └───xw
    │               ├───controller
    │               ├───domain
    │               ├───mapper
    │               └───service
    │                   └───impl
    └───resources
        ├───mapper
        │   └───xw
        └───templates
            └───xw
                ├───article
                └───type

运行ruoyi目录下两个sql文件(articleMenu.sql、typeMenu.sql)添加导航菜单

查看系统界面,多了两个项目,只不过还没有内容。

新建模块

在Ruoyi-master下,新建业务模块ruoyi-xw

填写模块名称,点击Create创建模块

ruoyi-xw的pom.xml添加公共模块依赖

	<dependencies>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
    </dependencies>

创建出如下包结构

分别把生成的domain、mapper、service目录下的代码分别拷贝到ruoyi-xw对应的包下,如下:

把生成的resources的mapper目录、templates目录拷贝到ruoyi-xw模块的resources目录下,如下:

在ruoyi-admin模块的com.ruoyi.web.controller包下创建xw包,存放新闻业务模块的控制类代码

将生成的controller的代码复制到ruoyi-admin的xw包中,如下:

 

重启若依项目

浏览器访问

看到文章的CRUD功能已实现,如下:

新闻类型CRUD功能已实现,如下: 

 

至此后台管理功能已完成。 

前端接口

通常一个完整的系统包括后台管理系统和用户前端。

  • 后台管理系统:供后台管理员使用。
  • 用户前端(访问终端,例如:网页端、移动端):供用户使用。

管理员后端接口通常会有严格的操作权限限制,如果用户前端和后端共用相同的Controller类接口,可能会造成数据安全隐患、权限管理复杂、代码结构也不够清晰等问题,所以,我们将后端和用户前端的接口分开管理。例如:后端的接口放在ruoyi-admin的web包下,用户前端的接口ruoyi-admin的api包下。

在ruoyi-admin模块新建api.controller包,专门存放用户前端的接口代码,例如:小程序接口。

把生成的controller代码拷贝到ruoyi-admin模块的api.controller包中,同时重命名控制类为如下:

注意:因为web包下有同名的Controller类,所以要重命名Controller类,否则启动会报错。

修改Controller类上的接口访问路径,添加请求路径/wxapi

WxApiXwArticleController.java

 

WxApiXwTypeController.java 

把新闻模块依赖添加到admin模块中

		<!-- 新闻业务 -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-xw</artifactId>
        </dependency>

为了能给用户前端(例如:小程序)提供不需要权限就能访问的接口,所以需要放开接口权限

注释掉权限,为了方便浏览器测试,同时把@PostMapping改为@RequestMapping

WxApiXwArticleController.java

 

WxApiXwTypeController.java

配置shiro放行用户前端接口api

双击shift键,输入ShiroConfig,找到filterChainDefinitionMap.put语句,添加如下语句放行api:

filterChainDefinitionMap.put("/wxapi/**", "anon");//放行api

 

重启程序

测试接口

浏览器访问

http://localhost/xw/article/list

 

浏览器访问

http://localhost/xw/type/list

 

可以访问到接口数据,但是返回的是分页查询的数据。

如果用户前端不需要分页,需要修改后端代码去掉分页查询,直接返回数据。

去掉分页查询,直接返回数据

WxApiXwArticleController.java

	@RequestMapping("/list")
    @ResponseBody
    public List<XwArticle> list(XwArticle xwArticle)
    {
        List<XwArticle> list = xwArticleService.selectXwArticleList(xwArticle);
        return list;
    }

WxXwTypeController.java

	@RequestMapping("/list")
    @ResponseBody
    public List<XwArticle> list(XwArticle xwArticle)
    {
        List<XwArticle> list = xwArticleService.selectXwArticleList(xwArticle);
        return list;
    }

重启程序

测试

http://localhost/wxapi/xw/article/list

http://localhost/wxapi/xw/type/list

 开发新的接口,例如:添加根据id查询文章的接口

WxApiXwArticleController.java

添加如下代码

	@RequestMapping("/getById/{id}")
    @ResponseBody
    public XwArticle getById(@PathVariable("id") Long id)
    {
        XwArticle list = xwArticleService.selectXwArticleById(id);
        return list;
    }

重启程序测试

http://localhost/wxapi/xw/article/getById/1

 

至此,完成了

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

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

相关文章

YOLOv10改进 | 添加注意力机制篇 | 添加LSKAttention大核注意力机制助力极限涨点

一、本文介绍 在这篇文章中&#xff0c;我们将讲解如何将LSKAttention大核注意力机制应用于YOLOv10&#xff0c;以实现显著的性能提升。首先&#xff0c;我们介绍LSKAttention机制的基本原理&#xff0c;它主要通过将深度卷积层的2D卷积核分解为水平和垂直1D卷积核&#xff0…

网络编程!

网络编程 【1】网络开发架构 &#xff08; 1 &#xff09; C / S 架构 C : client &#xff08;客户端&#xff09; S: server (服务端) APP - 就是服务端 C/S 架构通过客户端软件和服务器之间的交互&#xff0c;实现了前端界面和后端业务逻辑的分离&#xff0c;提供了一种…

昇思学习打卡-8-计算机视觉/FCN图像语义分割

目录 FCN介绍FCN所用的技术训练数据的可视化模型训练模型推理FCN的优点和不足优点不足 FCN介绍 FCN主要用于图像分割领域&#xff0c;是一种端到端的分割方法&#xff0c;是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因…

【JavaScript 算法】快速排序:高效的排序算法

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;通过分治法将数组分为较小的子数组&#xff0c;递归地排序子数组。快速排序通常…

近期几首小诗汇总-生活~卷

生活 为生活飘零&#xff0c;风雨都不阻 路见盲人艰&#xff0c;为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

使用ffmpeg将一个目录下的mkv格式的视频文件转换成mp4格式

最近学剪辑&#xff0c;从BT种子下载的素材资源都是mkv格式的&#xff0c;不能直接导入到视频剪辑软件中。这种情况下需要用一些格式转换工具进行转换&#xff0c;也可以使用ffmpeg进行编辑。 ffmpeg是一个命令行工具&#xff0c;用来对本地的音频视频软件进行编辑。ffmpeg我也…

【服务器】端口映射

文章目录 1.端口映射的概念1.1 端口映射的类型1.2 端口映射的应用场景1.3 示例 2.为什么要进行端口映射呢&#xff1f;3.原理3.1【大白话】原理解释3.2 原理图 4.代码 1.端口映射的概念 端口映射&#xff08;Port Mapping&#xff09;&#xff0c;也称为端口转发&#xff08;P…

萝卜快跑:未来出行的双刃剑

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 在这个日新月异的科技时代&#xff0c;无人驾驶技术正以前所未有的速度改变着我们的出行方式。萝卜快跑&#xff0c;作为自动驾驶出租车领域的佼佼者&#xff0c;其出现无疑为城市交通注入了新的活力&#xff…

[微信小程序知识点]自定义组件-拓展-外部样式类

使用组件时&#xff0c;组件使用者可以给组件传入css类名&#xff0c;通过传入的类名修改组件的样式 。 如果需要使用外部样式类修改组件的样式&#xff0c;在Component中需要用extemalClassess定义若干个外部样式类。 具体用法如下: (1)在Components文件里创建custom06组件 (…

谷粒商城实战笔记-26-分布式组件-SpringCloud-Gateway网关核心概念原理

微服务架构中&#xff0c;API网关扮演着至关重要的角色&#xff0c;它不仅作为微服务间的通信桥梁&#xff0c;还负责安全、监控、限流等职责。 一&#xff0c;网关的发展历程 SpringCloud的网关经历了两代的迭代和更替。 第一代网关是早期的Zuul&#xff0c;由 Netflix 开发…

【密码学】数字签名

一、数字签名的基本概念 数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分&#xff08;通常是文档的摘要&#xff09;进行加密&#xff0c;从而创建一个“签名”。这个签名可以附在文档上&#xff0c;或作为一个单独…

巧用 VScode 网页版 IDE 搭建个人笔记知识库!

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 巧用 VScode 网页版 IDE 搭建个人笔记知识库! 描述&#xff1a;最近自己在腾讯云轻量云服务器中部署了一个使用在线 VScode 搭建部署的个人Markdown在线笔记&#xff0c;考虑到在线 VScode 支持终…

C++笔试真题

可变分区管理方案 最佳适应&#xff1a;空闲区按容量递增最坏适应&#xff1a;空闲区按容量递减首先适应&#xff1a;空闲区按地址递增 C的结构体中有构造函数。 Linux新建用户或组 useradd&#xff1a;命令用于建立用户账号usermod&#xff1a;修改用户账号groupadd&#…

Spire.PDF for .NET【文档操作】演示:C#/VB.NET:压缩 PDF 文档

大型 PDF 文件处理起来很麻烦&#xff0c;占用宝贵的存储空间并减慢传输和上传速度。压缩 PDF 文档是一种简单有效的方法&#xff0c;可以减少文件大小并针对各种用途进行优化。通过压缩 PDF&#xff0c;您可以更轻松地通过电子邮件或云存储平台共享它们&#xff0c;加快下载速…

用Apipost压力测试接口

用Apipost压力测试接口 1.点击自动化测试 2.选择要测试的接口 3.如果没有接口&#xff0c;就先在api调试中添加要测试的接口 4.根据自己的需求设置相应的参数&#xff0c;这里我压测10次 5.这样就可以压测接口了&#xff0c;非常nice

接口幂等性和解决方案

针对前端重复发起相同请求的解决方案&#xff1a; 注意&#xff1a; Redis保证了在相同key的情况下&#xff0c;只会保留一条数据&#xff0c;这就保证了多次请求只会消费一条数据。 并且需要注意的是&#xff0c;生成/获取token和携带token发送请求的过程需要是两个不同的过…

showdoc sqli to rce漏洞利用思考

漏洞版本 sqli <3.2.5 phar 反序列化 <3.2.4 漏洞分析 前台sqli 补丁 https://github.com/star7th/showdoc/commit/84fc28d07c5dfc894f5fbc6e8c42efd13c976fda 补丁对比发现&#xff0c;在server/Application/Api/Controller/ItemController.class.php中将$item_id变量…

Java--抽象类

1.抽象--abstract 2.不能对抽象类进行实例化&#xff0c;也就是不能new这个抽象类 3.抽象类的应用&#xff0c;就是在class前加入abstract这个单词&#xff0c;同理抽象方法也是在void前加入abstract 4.在抽象类中可以写普通方法&#xff0c;但抽象方法只能写在抽象类中 5.…

Linux账号和权限管理详解

Linux系统中安装和管理程序 太详细了 &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的…

婚恋交友语音交友小程序APP系统开发

在数字化时代&#xff0c;婚恋交友的方式也日益多样化。传统的相亲、朋友介绍等方式已经无法满足现代人快节毒的生活需求&#xff0c;更多的人开始选择通过线上平台寻找自己的另-婚恋交友语音交友小程序APP应运而生&#xff0c;为单身男女提供了个便捷、高效的交友平台。本文将…