若依微服务版(ruoyi-cloud)使用记录

本文详细记录了在使用Ruoyi-cloud微服务框架过程中的关键步骤与常见问题解决,涵盖了开发工具配置、代码生成、模块开发、服务接口定义、部署运行等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下使用ruoyi-cloud过程中遇到的问题

开发工具 Intellij Idea Community、Visual Studio Code

Idea 建议安装插件:Free Mybatis plugin,这样可以从 mapper 接口直接跳转到对应的 mapper.xml 文件

vscode 建议安装插件:Vetur、vscode-element-helper、ESLint

更新时间: 2020-08-08 12:10

目录

1.启动

2.代码生成

3.协同开发一个模块

4.新建模块

新增以com.ruoyi开头的模块

新增不以 com.ruoyi 开头的模块

5.将模块抽取为单独的项目

6.服务接口的定义和服务间调用

7.部署运行

jar 包运行

Redis 只能 localhost 访问,本机 IP 访问报错 

docker 运行 nacos

docker 运行 ruoyi 模块

开发环境 docker 部署注意事项


1.启动

 按照官网的步骤,

  1. 导入项目,创建数据库和表,启动nacos。接下来修改nacos=》配置管理=》配置列表,把里面用到数据库连接的地方全部换成自己的数据库,并修改用户名和密码,包括:ruoyi-system-dev.yml、ruoyi-auth-dev.yml、ruoyi-gen-dev.yml、ruoyi-job-dev.yml
  2. 下载、安装、启动Redis(注意,2020-07-22的时候官网文档没写这一步,但是必须要启动redis),将nacos配置列表所有用到Redis的地方换成自己的链接,包括:ruoyi-gateway-dev.yml、ruoyi-auth-dev.yml、ruoyi-system-dev.yml
  3. 启动前端。我遇到了某个包下载不下来的情况(ejs),解决办法是单独安装一下那个包,或者复制一个放到 node_modules 下也行。node 版本最好不要太低,我用的12.16.3

补充:vscode 打开 ruoyi-ui后,左侧目录会出现 NPM脚本,点击 dev 右侧的小三角就能启动前端了,简单省事。如下图:

2.代码生成

使用代码生成的时候,数据库表一定要配置主键,不然可能会遇到一些一眼看过去很奇妙的问题,我遇到的是新增和修改调用的是同一个接口,表现出来就是有一个功能异常。后期熟悉了很容易找见问题,但刚接触的时候确实摸不着头脑。

3.协同开发一个模块

多个人协同开发同一个模块的情况多少会遇到。如果不做修改的话,在 nacos 上看到的是一个服务有多个实例,nacos 会根据配置的权重自动做均衡。这种情况下调试就会变得很麻烦。我没采用的解决办法是:假设开发ruoyi-house 模块

  1. 修改 resources 目录下的 bootstrap.yml文件中定义的应用名称,比如改成:ruoyi-house-m1
  2. nacos 上克隆一份原配置,修改名称,这里的情况就是改成 ruoyi-house-m1-dev.yml
  3. 修改 ruoyi-ui 下的 vue.config.js 的 proxy,将要开发模块的请求全部映射到本地,不走网关。这样别人访问不到自己的服务,不用担心调试的时候误入。但是自己可以访问其他模块,不影响自己的开发。参考配置如下:
proxy: {
  // detail: https://cli.vuejs.org/config/#devserver-proxy
  [process.env.VUE_APP_BASE_API + '/house']: {
    target: `http://localhost:9204`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API + '/house']: ''
    }
  },
  [process.env.VUE_APP_BASE_API]: {
    target: `http://localhost:8080`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API]: ''
    }
  }
}

因为是从上到下顺序匹配的,所以顺序一定不能变。同样的也可以实现同一模块的某个接口继续走网关,剩下的走本地,如下

proxy: {
  // detail: https://cli.vuejs.org/config/#devserver-proxy
  [process.env.VUE_APP_BASE_API + '/house/bedroom']: {
    target: `http://localhost:8080`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API]: ''
    }
  },
  [process.env.VUE_APP_BASE_API + '/house']: {
    target: `http://localhost:9204`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API + '/house']: ''
    }
  },
  [process.env.VUE_APP_BASE_API]: {
    target: `http://localhost:8080`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API]: ''
    }
  }
}

4.新建模块

新增以com.ruoyi开头的模块

在 ruoyi-modules 上右键,new=》module,Parent 选择 ruoyi-modules,name 以 ruoyi-my 为例。如下图:

新建模块
新建模块

接下来修改 ruoyi-my 的 pom 文件,直接复制 ruoyi-system 的 dependencies 节点和 build 节点。创建包结构,创建启动类(复制 system 模块的启动类修改名称),创建 bootstrap.yml(同样复制 system 模块,修改端口和服务名称)。如下图:

目录结构和bootstrap.yml
目录结构和bootstrap.yml

接下来登陆 nacos,克隆 ruoyi-system-dev.yml ,命名为 ruoyi-my-dev.yml,修改 mybatis.typeAliasesPackage,改为 com.ruoyi.my,发布。如下图:

nacos上的配置文件
nacos上的配置文件

然后修改 ruoyi-gateway-dev.yml,添加新增的模块,发布。如下图:

网关配置
网关配置

关于上图中出现的 myService 的说明:myService 是和 api 中的 url 关联的。api如下:

// 查询测试用列表
export function listTest(query) {
  return request({
    url: '/myService/test/list',
    method: 'get',
    params: query
  })
}

启动新模块后就可以访问了。

新增不以 com.ruoyi 开头的模块

在“新增 com.ruoyi 开头的模块”的基础上做以下修改:以 com.mypkg.my 为例

  1. 修改 nacos 上对应配置文件,修改 mybatis.typeAliasesPackage 为 com.mypkg.my
  2. 新建 annotation 包,将 ruoyi-common 模块下 ruoyi-common-security子模块下的com.ruoyi.common.security.annotation.EnableCustomConfig.java 类复制过来,修改 @MapperScan 的值为 com.mypkg.**.mapper。接着将启动类上的 @EnableCustomConfig 注解改引用 annotation 包下的 EnableCustomConfig。如下图:
EnableCustomConfig
EnableCustomConfig
启动类
启动类

 启动项目即可。

5.将模块抽取为单独的项目

首先,运行 mvn install 命令,将 ruoyi 的包安装到本地仓库,因为之后会用到这些包。直接在 idea 里运行就可以。如下图:

install ruoyi 各模块
install ruoyi 各模块

以“新增不以 com.ruoyi 开头的模块” 为例。先将 ruoyi-my 文件夹复制到一个新的目录,然后用 idea打开。然后修改 pom.xml 文件,修改 parent 节点,指向 ruoyi。如下:

修改pom的parent节点
修改pom的parent节点

运行启动类,结束。

如果是以“新增以 com.ruoyi开头的模块” 为基础,那么需要添加“新增不以 com.ruoyi 开头的模块”的第2步,迁移 EnableCustomConfig 类。

6.服务接口的定义和服务间调用

以“新增不以 com.ruoyi 开头的模块” 为例。在原项目里建两个模块:my-client 和 my-server 。my-clinet 里编写对外提供的远程调用接口。将原来的逻辑迁移进 my-server 。迁移的时候要修改两个地方:主 pom 的 build 节点和 my-server pom 的 build 节点。将原主 pom 的build 节点迁移至 my-server 的pom里。主pom改用 maven-compiler-plugin 。另外,建议指定3个pom的 groupId 、artifactId、version,这样别的模块引用的时候不会混乱。如下:

主pom和my-server的pom
主pom和my-server的pom
// 主pom
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
            <version>${maven-compiler-plugin.version}</version>
        </plugin>
    </plugins>
</build>

 my-client 的创建参照 ruoyi-api 即可。有一点需要注意,新建的 fallbackFactory 接口要在 resource.META-INF.spring.factories 里注册,如下图:

 重复“新增不以 com.ruoyi 开头的模块” ,新建一个项目 ruoyi-my2,ruoyi-my2 调用 ruoyi-my 创建的服务。

首先 mvn install ruoyi-my 项目。ruoyi-my2 的 pom 文件中添加 ruoyi-my 项目的 my-client 的引用,不需要整个引用 ruoyi-my。然后在 annotation 包中新建接口 EnableRyFeignClients,修改启动类对 EnableRyFeignClients 的引用,改引用自定义的 EnableRyFeignClients。接着修改 EnableRyFeignClients 的 basePackages。因为 OpenFeign 默认只扫描启动类所在目录及子目录,所以默认扫不到其他包里定义的远程调用接口。EnableRyFeignClients 内容如下:

import java.lang.annotation.*;

/**
 * 自定义feign注解
 * 添加basePackages路径
 * 
 * @author ruoyi
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EnableFeignClients
public @interface EnableRyFeignClients
{
    String[] value() default {};

    String[] basePackages() default { "com.ruoyi", "com.mypkg" };

    Class<?>[] basePackageClasses() default {};

    Class<?>[] defaultConfiguration() default {};

    Class<?>[] clients() default {};
}

 ruoyi-my2 的 pom 文件中添加对 my-client 的引用:

<dependency>
    <groupId>com.mypkg</groupId>
    <artifactId>my-client</artifactId>
    <version>1.0.0</version>
</dependency>

然后就可以调用 RemoteMyService 服务了。

7.部署运行

  • jar 包运行

打包后直接 java -jar ***.jar 会报异常:

2020-08-01 22:04:19.429 ERROR 15556 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : parse data from Nacos error,dataId:application-dev.yml,data:#请求处理的超时时间
......
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

 参考文章NACOS MalformedInputException 无法读取中文配置问题,解决办法是运行时指定编码格式:

java -D'file.encoding=utf-8' -jar .\ruoyi-auth-2.0.0.jar
  • Redis 只能 localhost 访问,本机 IP 访问报错 

报错内容:io.lettuce.core.RedisException: java.io.IOException: 远程主机强迫关闭了一个现有的连接。

参考redis本机能访问 远程不能访问的问题,解决办法:

  1. 给 Redis 添加密码
  2. 注释掉 bind 127.0.0.1
  • docker 运行 nacos

 开发环境下 nacos 使用单机版。配置参考了docker内搭建单机模式的nacos,但是原文章写的比较早,参数已经发生了变化,所以以下文为准(2020-08-02版)。建议直接参考官方的参数说明:nacos-docker

  1. 拉取镜像
    docker pull nacos/nacos-server

     

  2. 启动镜像
    docker run --env-file=env.list --name nacos -d -p 8848:8848 nacos/nacos-server

    env.list 内容

    MODE=standalone
    SPRING_DATASOURCE_PLATFORM=mysql
    MYSQL_SERVICE_DB_NAME=ry-config
    MYSQL_SERVICE_HOST=192.168.1.109
    MYSQL_SERVICE_USER=root
    MYSQL_SERVICE_PASSWORD=root

    如果使用的虚拟机(我用的vmware),则需要将主机的 8848 端口映射到虚拟机的 8848 端口,这样其他电脑才能访问到 docker 里的 nacos。步骤是:编辑=》虚拟网络编辑器=》更改设置=》NAT设置=》添加,

  • docker 运行 ruoyi 模块

运行网关模块,发现没有注册到nacos。运行命令: docker logs 容器id,发现报错: java.net.NoRouteToHostException: No route to host (Host unreachable)。解决办法:防火墙开放相应端口。

  • 开发环境 docker 部署注意事项

默认情况下,docker 内部网络和外部是隔离的。启动的时候讲宿主机的 8080 端口映射到 docker 内网关模块的 8080 端口,这样外部通过网关访问容器内的服务没有问题,内部服务间的调用也没有问题。但是我本地访问 docker 内部的服务的时候就访问不到了,因为 docker 内服务的 IP 都是172.*。我遇到的报错提示是:请求 auth 时超时。解决办法是修改docker的网络为 host,这样服务会共用宿主机的 IP ,访问就正常了。docker 的四种网络模式的区别可以参看:Docker四种网络模式

<think>好的,用户现在想了解如何下载若依微服务项目以及相关的Nacos配置文件位置。之前用户已经询问过关于ruoyi-auth-dev.yaml等配置文件的详细介绍,现在转向项目的获取和文件结构。 首先,我需要确定用户可能的需求。用户可能是刚开始接触若依微服务,想搭建自己的项目环境,所以需要指导如何正确下载源码和找到配置文件。考虑到用户之前的问题,他们可能已经了解配置的作用,现在需要实际操作的步骤。 接下来,我需要回忆若依微服务项目的结构。通常,开源项目在GitHub或Gitee上有仓库,用户需要克隆或下载源码。解压后,Nacos的配置文件通常存放在特定目录下,比如nacos/config。需要确认正确的路径,避免用户找不到文件。 然后,要确保步骤清晰,分点说明下载和解压过程,特别是对于可能不熟悉Git的用户,提供直接下载ZIP的选项。同时,要指出配置文件的路径,并列出主要文件,让用户知道每个配置文件对应的服务。 用户可能遇到的常见问题包括下载速度慢,或者找不到配置文件目录。因此,在注意事项中,建议使用Gitee镜像加快下载,并确认项目结构是否与文档一致。另外,提醒用户需要安装Nacos并导入配置,这是项目运行的前提条件,避免用户遗漏步骤。 最后,确保语言简洁,步骤明确,避免技术术语过多,让不同水平的用户都能理解。同时,补充参考资料链接,方便用户进一步查阅官方文档,解决更深层次的问题。</think>以下是 **若依微服务RuoYi-Cloud)项目下载及 Nacos 配置文件目录** 的详细步骤说明: --- ### **1. 下载若依微服务项目** #### **方式一:通过 GitHub 下载** 1. 访问 GitHub 仓库: [RuoYi-Cloud GitHub 地址](https://github.com/yangzongzhuan/RuoYi-Cloud) 2. 点击 `Code` → `Download ZIP` 直接下载源码压缩包: ![GitHub 下载示例](https://img-blog.csdnimg.cn/20210527152830832.png) #### **方式二:通过 Gitee 下载(国内推荐)** 1. 访问 Gitee 镜像仓库(下载速度更快): [RuoYi-Cloud Gitee 地址](https://gitee.com/y_project/RuoYi-Cloud) 2. 点击 `克隆/下载` → `下载 ZIP`: ![Gitee 下载示例](https://img-blog.csdnimg.cn/20210527153042940.png) --- ### **2. 解压并定位 Nacos 配置文件目录** 1. 解压下载的 ZIP 文件后,进入项目根目录 `ruoyi-cloud`。 2. 找到 Nacos 配置文件存放路径: ```plaintext ruoyi-cloud/nacos/config ``` - **主要配置文件清单**: ``` ruoyi-auth-dev.yaml # 认证服务 ruoyi-system-dev.yaml # 系统模块 ruoyi-gen-dev.yaml # 代码生成 ruoyi-job-dev.yaml # 定时任务 ruoyi-gateway-dev.yaml # API网关 ruoyi-monitor-dev.yaml # 监控中心 ...(其他微服务配置) ``` --- ### **3. 配置文件使用说明** #### **配置导入步骤** 1. **启动 Nacos 服务** - 确保已安装并启动 Nacos Server(默认端口 `8848`)。 2. **导入配置文件** - 将 `nacos/config` 目录下的所有配置文件通过 Nacos 控制台(`http://localhost:8848/nacos`)手动导入,或直接复制到 Nacos 的 `data/config` 目录(需重启 Nacos)。 #### **配置文件结构示例** ```plaintext nacos/config/ ├── ruoyi-auth-dev.yaml # 认证服务配置 ├── ruoyi-system-dev.yaml # 系统模块配置 ├── ruoyi-gen-dev.yaml # 代码生成配置 ├── ruoyi-job-dev.yaml # 定时任务配置 ├── ruoyi-gateway-dev.yaml # 网关路由配置 └── ...(其他服务) ``` --- ### **注意事项** 1. **下载加速** - 若 GitHub 下载缓慢,优先使用 Gitee 镜像仓库。 2. **本匹配** - 确保 Nacos Server 本与项目要求一致(通常为 Nacos 1.x 或 2.x)。 3. **配置文件路径验证** - 若解压后目录结构不同,请参考官方文档确认路径([RuoYi-Cloud 文档](https://doc.ruoyi.vip/ruoyi-cloud/))。 --- 通过以上步骤即可快速获取若依微服务项目源码并定位其 Nacos 配置文件。运行项目前,需确保 Nacos、Redis、MySQL 等依赖服务已正确配置并启动。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值