说明:本文介绍基于Ruoyi-Cloud前后端分离nacos版本的微服务从0到1的搭建过程,同时新增一个新的微服务模块。是基于官方文档的补充说明,需要结合Ruoyi-Cloud的官方文档 /ruoyi-cloud/
如果直接查看官方文档便可成功部署,推荐直接看官方文档。
以下,我将从自己搭建安装过程中,遇到的坑和bug做详细补充说明,主要涵盖以下几个方面:
1、前置环境搭建(重要):主要包含nacos、redis。
2、运行系统:主要包含前后端运行,以及运行过程中的关键确认点。
建议下列组件安装在自己的本机上,或者安装在 可以和你的主机相互访问 的另一台服务器上,这样初次部署可以规避很多网络访问的坑。
JDK >= 1.8 (推荐1.8版本) # 独自安装即可
Mysql >= 5.7.0 (推荐5.7版本) # 独自安装即可
Redis >= 3.0 # 可以docker安装,参看
Maven >= 3.0 # 独自安装接口
Node >= 12 # 独自安装即可
nacos >= 2.0.4 (ruoyi-cloud < 3.0 需要下载nacos >= 1.4.x版本) # docker安装
nacos的安装,可以参考我的另一个文章:docker安装nacos
安装官方的操作进行代码下载和数据库配置
1、前往Gitee下载页面( (opens new window))下载解压到工作目录
2、导入到Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。
Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)
3、创建数据库ry-cloud并导入数据脚本ry_2021xxxx.sql(必须),quartz.sql(可选)
4、创建数据库ry-config并导入数据脚本ry_config_2021xxxx.sql(必须)
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置 # 在上文的docker安装nacos中,进行数据库配置。
需要注意的是,当我们吧ry-config数据导入完成后,请重启nacos,并登录nacos控制台,理论上是可以看到该界面的:
如果没有看到该界面,请查看你的
打开运行基础模块(启动没有先后顺序)
RuoYiGatewayApplication (网关模块 必须)
RuoYiAuthApplication (认证模块 必须)
RuoYiSystemApplication (系统模块 必须)
RuoYiMonitorApplication (监控中心 可选)
RuoYiGenApplication (代码生成 可选)
RuoYiJobApplication (定时任务 可选)
RuoYFileApplication (文件服务 可选)
进入项目目录
cd ruoyi-ui
强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=
本地开发 启动项目
npm run dev
4、打开浏览器,输入:(localhost:80 (opens new window)) 默认账户/密码 admin/admin123)
若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功
通过前两步骤,我们已经完成ruoyi-Cloud的启动,接下来我们需要做的基于该框架额外搭建一个微服务module,module名称就叫做:jxbd(不用问我为什么叫这个,随便起的)。
做开发的第一步是模仿ruoyi的接口实现方式,首先我们要能使用postman调用若依的接口。
登录进ruoyi控制台,打开F12,然后刷新页面。可以看到一些请求接口,这里我们选择getInfo接口,如下图:
我们需要的三个信息:
先放截图:
基于ruoyi搭建一个新的module需要做的事情有如下几个方面:
这个模块的创建,我是参考ruoyi-modules ruoyi-system进行创建的。学习的第一步,像素级复刻,开始!
完整的目录树,见上上图。需要重点关注的文件有:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi=""xmlns=".0.0"xsi:schemaLocation=".0.0 .0.0.xsd"><parent><groupId>com.ruoyi</groupId><artifactId>ruoyi</artifactId><version>3.6.3</version></parent><modelVersion>4.0.0</modelVersion><!-- 修改为自己的名字 --><artifactId>ruoyi-jxbd</artifactId><description><!-- 修改为自己的名字 -->ruoyi-jxbd系统模块</description><dependencies><!-- SpringCloud Alibaba Nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- SpringCloud Alibaba Nacos Config --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- SpringCloud Alibaba Sentinel --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- SpringBoot Actuator --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- Swagger UI --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.fox.version}</version></dependency><!-- Mysql Connector --><dependency><groupId&sql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!-- RuoYi Common DataSource --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-datasource</artifactId></dependency><!-- RuoYi Common DataScope --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-datascope</artifactId></dependency><!-- RuoYi Common Log --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-log</artifactId></dependency><!-- RuoYi Common Swagger --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common-swagger</artifactId></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
ReadMe.md
中查看ruoyi配置的默认端口。# Tomcat
server:port: 9888# Spring
spring: application:# 应用名称name: ruoyi-jxbdprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848config:# 配置中心地址server-addr: 127.0.0.1:8848# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.fig.file-extension}
其余代码,像素级复刻SysConfigController的具体实现逻辑即可。
添加ruoyi-jxbd模块
在fig_info表中,新增一条记录:
该记录也是借鉴system模块修改的,主要关注的点:
INSERT INTO `ry-config`.config_info (id, data_id, group_id, content, md5, gmt_create, gmt_modified, src_user, src_ip, app_name, tenant_id, c_desc, c_use, effect, type, c_schema, encrypted_data_key) VALUES (10, l', 'DEFAULT_GROUP', '# spring配置
spring:redis:host: 192.168.10.15port: 6379password:datasource:druid:stat-view-servlet:enabled: trueloginUsername: adminloginPassword: 123456dynamic:druid:initial-size: 5min-idle: 5maxActive: 20maxWait: 60000connectTimeout: 30000socketTimeout: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxPoolPreparedStatementPerConnectionSize: 20filters: stat,slf4jconnectionProperties: Sql\=true;druid.stat.slowSqlMillis\=5000datasource:# 主库数据源master:driver-class-name: sql.cj.jdbc.Driverurl: jdbc:mysql://xxxx:3306/database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: xxxx# 从库数据源# slave:# username: # password: # url: # driver-class-name: # mybatis配置
mybatis:# 搜索指定包别名typeAliasesPackage: com.ruoyi.jxbd# 配置mapper的扫描,找到所有的l映射文件mapperLocations: classpath:mapper/**/*.xml# swagger配置
swagger:title: 系统模块接口文档license: Powered By ruoyilicenseUrl: ', '00678c89684ec0b825cb9b71e032db65', '2020-11-20 00:00:00', '2023-12-04 07:51:28', 'nacos', '0:0:0:0:0:0:0:1', '', '', '数据模块', 'null', 'null', 'yaml', '', '');
参考资料:
RuoYi-Cloud介绍 :/ruoyi-cloud/
Ruoyi-Cloud讨论:
本文发布于:2024-02-02 07:49:39,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170683137842386.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |