当前位置: 首页 > news >正文

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

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

目录

运行若依框架

下载若依框架代码

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")@ResponseBodypublic List<XwArticle> list(XwArticle xwArticle){List<XwArticle> list = xwArticleService.selectXwArticleList(xwArticle);return list;}

WxXwTypeController.java

	@RequestMapping("/list")@ResponseBodypublic 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}")@ResponseBodypublic XwArticle getById(@PathVariable("id") Long id){XwArticle list = xwArticleService.selectXwArticleById(id);return list;}

重启程序测试

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

 

至此,完成了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于YOLOV8的数粒机视觉计数解决方案
  • C# 实现基于exe内嵌HTTPS监听服务、从HTTP升级到HTTPS 后端windows服务
  • 【C++】CMake入门
  • React_自定义组件_下拉框
  • 面试题009-Java-MyBatis
  • 【Python】Requests 库使用示例
  • Maven 项目编译提示 unparseable pom 的解决方法
  • 练习:随机点名器5
  • 数据结构与算法基础-学习-37-平衡二叉树(Avl树)之删除节点
  • 各向异性含水层中地下水三维流基本微分方程的推导(二)
  • @Autowired 和 @Resource 区别的补充说明与示例
  • Datadomain存储上的文件大小,linux环境建议使用du -sh --apparent-size或ll -sh来查看
  • 【JAVA入门】Day15 - 接口
  • 实现前端用户密码重置功能(有源码)
  • 【C语言】 —— 预处理详解(下)
  • centos安装java运行环境jdk+tomcat
  • css布局,左右固定中间自适应实现
  • ES6简单总结(搭配简单的讲解和小案例)
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTML-表单
  • Mithril.js 入门介绍
  • MySQL主从复制读写分离及奇怪的问题
  • PAT A1120
  • springboot_database项目介绍
  • SQLServer之创建显式事务
  • uva 10370 Above Average
  • web标准化(下)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 简析gRPC client 连接管理
  • 来,膜拜下android roadmap,强大的执行力
  • 前端性能优化--懒加载和预加载
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 入门级的git使用指北
  • 微服务核心架构梳理
  • 线性表及其算法(java实现)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (¥1011)-(一千零一拾一元整)输出
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C++17) std算法之执行策略 execution
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (六)c52学习之旅-独立按键
  • (区间dp) (经典例题) 石子合并
  • (三)elasticsearch 源码之启动流程分析
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)stm32之通信协议
  • (转)scrum常见工具列表
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Compact Framework 3.5 支持 WCF 的子集