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

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

目录

运行若依框架

下载若依框架代码

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>

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

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

WxApiXwArticleController.java

WxApiXwTypeController.java

(2)配置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

至此,完成了用户前端接口开发。

完成!enjoy it!

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

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

相关文章

从零开始做题:神奇的棋盘

题目 打开得到一副adfgvx加密棋盘 观察txt数据只有1-5&#xff0c;猜测是数字字母坐标转换&#xff0c;用notepad批量操作一下 解题 AGAXXDAGGVGGVDVADAVXDGADVGDVAADDDDFXAFAFDGDVXXDGGDGGDXDDFDDXVGXADGVDFXVVAADDXDXXADDVGGGXGXXXXGXXGGXGDVVVGGGAGAAAAGAAGGAGDDDAGAGGG…

JS实现:统计字符出现频率/计算文字在文本中的出现次数

要实现这个功能&#xff0c;JavaScript 一个非常强大的方法&#xff0c;那就是reduce() reduce() 它用于将数组的所有元素减少到一个单一的值。这个值可以是任何类型&#xff0c;包括但不限于数字、字符串、对象或数组。 reduce() 方法接收一个回调函数作为参数&#xff0c;这个…

Java单边表的局部翻转

反转链表 II 这是上一个翻转全部链表的进阶版&#xff0c;大家可以先去看我的上一篇博客 Java算法之单链表的全部翻转-CSDN博客 题目描述 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节…

Spring Cloud Eureka

引入&#xff1a;远程调用时&#xff0c;url是写死的 String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 解决思路&#xff1a; 比如&#xff08;医院&#xff0c;学校等&#xff09;机构的电话号码发生变化&#xff0c;就需要通知各个使⽤…

mybatilsplaus 常用注解

官网地址 baomidou注解配置

vue3项目,表单增删改

效果图 ArticleChannel.vue页面代码 <script setup> import {artGetChannelsService ,artDelChannelService} from /api/article.js import { Edit, Delete } from element-plus/icons-vue //调用open方法&#xff0c;ChannelEdit去修改组件内部类容 import ChannelEdit…

【Linux】1w详解如何实现一个简单的shell

目录 实现思路 1. 交互 获取命令行 2. 子串分割 解析命令行 3. 指令的判断 内建命令 4. 普通命令的执行 补充&#xff1a;vim 文本替换 整体代码 重点思考 1.getenv和putenv是什么意思 2.代码extern char **environ; 3.内建命令是什么 4.lastcode WEXITSTATUS(sta…

linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

文章目录 Nethogs 网络监控程序详解1. 引言2. Nethogs 的安装与运行2.1 安装 Nethogs- **Debian/Ubuntu**- **Fedora**- **Arch Linux** 2.2 运行 Nethogs 3. Nethogs 的使用详解3.1 基本界面- **PID**&#xff1a;进程的 ID。- **用户**&#xff1a;运行该进程的用户。- **程序…

graphviz subgraph添加边界框

subgraph name 属性必须要以cluster开头。 A Quick Introduction to GraphvizAn awesome tool for software documentation and visualizing graphshttps://www.worthe-it.co.za/blog/2017-09-19-quick-introduction-to-graphviz.html digraph {rankdir"LR"// the n…

DEBUG:jeston卡 远程ssh编程

问题 jeston 打开网页 gpt都不方便 而且只需要敲命令就行 解决 下载MobaXterm(window执行) liunx需要虚拟机 软件 远程快速复制命令

7.13 专题训练DP

P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ac代码 #include<bits/stdc.h> using namespace std; typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) const ll mod 1e97;int main() {IOS;int n;cin>>n;int a[…

Unity Text Mesh Pro 中英文混编自动换行问题

问题描述 使用TextMeshPro 输入中英文时&#xff0c;在一行内 输入中英文&#xff0c;当英文部分超过第一行剩余位置时&#xff0c;整个英文部分都会自动换行 问题截图&#xff1a; 期待截图&#xff1a; 问题说明 因为 TextMeshPro识别中文后会带换行符。 解决方案 修改…

MICCAI 2024 每日一篇论文 纯纯直读 CUTS:用于多粒度无监督医学图像分割的深度学习和拓扑框架

MICCAI 2024 CUTS: A Deep Learning and Topological Framework for Multigranular Unsupervised Medical Image Segmentation CUTS: 用于多粒度无监督医学图像分割的深度学习和拓扑框架 作者 陈璐1*、Matthew Amodio1*、梁博伦.沈2、冯高3、阿曼阿维斯塔4、Sanjay Aneja3,5…

最火视频素材去哪里找?热门的视频素材网站库分享给你

寻找独特视频素材&#xff1f;这些网站助你成为创作之星&#xff01; 朋友们&#xff01;你是否还在为寻找那些能让你的视频内容焕发光彩的素材而四处奔波&#xff1f;内容为王&#xff0c;但没有独特而吸引人的素材&#xff0c;再好的内容也难以吸引观众的目光。别担心&#…

3分钟搞定Kali Linux安装,超详细教程(附安装包)

**今天写一写Kali渗透中的第一个知识点&#xff1a;Kali安装配置。 俗话说得好&#xff1a;kali学得好&#xff0c;牢饭吃到饱&#xff01;** 相信很多同学在刚接触网络安全的时候&#xff0c;都听过kali linux的大名&#xff0c;那到底什么是kali&#xff0c;初学者用kali能做…

操作系统智能助手OS Copilot评测报告

背景 如果不是朋友告知&#xff0c;我还不知道阿里云推出了【操作系统智能助手OS Copilot】这样一款产品。 我做系统运维的工作还是挺多的&#xff0c;知道系统运维工作的一些痛点&#xff1b;例如&#xff1a; Linux命令繁杂&#xff0c;想全部记住不太可能&#xff0c;多数…

防火墙NAT智能选举综合实验

&#xff08;在上一篇防火墙安全策略实验基础上&#xff09; 一、拓扑图&#xff1a; 二、实验要求&#xff1a; 7、办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换&#xff09; 8、分公司设备可以通过总…

打造高效工作与生活质量的完美平衡

在快节奏的编程行业中&#xff0c;保持健康的工作与生活平衡是至关重要的。长时间坐在电脑前、面对紧凑的项目截止日期和频繁的加班文化&#xff0c;很容易导致身心健康问题&#xff0c;如眼睛疲劳、颈部和背部疼痛、压力累积、睡眠障碍乃至慢性疾病。因此&#xff0c;采取积极…

将vue项目整合到springboot项目中并在阿里云上运行

第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 在r…