介绍
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用,必须支持。
RuoYi-Colud基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本。
- 采用前后端分离的模式,微服务版本前端(基于 RuoYi-Vue)。
- 后端采用Spring Boot、Spring Cloud & Alibaba。
- 注册中心、配置中心选型Nacos,权限认证使用Redis。
- 流量控制框架选型Sentinel,分布式事务选型Seata。
- 提供了技术栈(Vue3 Element Plus Vite)版本RuoYi-Cloud-Vue3,保持同步更新。
- 如需不分离应用,请移步 RuoYi,如需分离应用,请移步 RuoYi-Vue
物是人非了,配置文件怎么没了,差点启动不能若依了,不说了开始学习!
下载https://gitee.com/y_project/RuoYi-Cloud
环境
版本不用多说了吧,推动爪哇发展尽量用17(包括)以上,这里主要说nacos2.3.2。
win版本是下载zip的哦!
Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它的核心功能是:
- 服务发现与服务健康监测:微服务能自动注册并被发现,实时监控服务实例健康状况。
- 动态配置服务:集中化管理应用配置,支持配置变更实时推送,无需重启应用。
- 动态 DNS 服务:提供基于 DNS 协议的服务发现能力。
Nacos 旨在简化微服务架构中的服务治理和配置管理,是构建云原生应用的关键组件之一。
Nacos 就是微服务的 超级管家+保姆,让开发运维省心省力,系统更稳、更好维护!特别适合服务多、变化快的场景。小白理解:它让复杂的系统协作变得简单又智能!前面也有伏笔哦,配置配置文件在Nacos上,可以直接修改哦!
Nacos使用
- 导入若依数据库,好像要3个数据库
ry-cloud(ry.sql、quartz.sql),
ry-config(重要的!nacos启动后去ry-config中读取配置信息,ry_config.sql),
ry-seata,在此数据库下执行ry_seata.sql这个sql文件,名字都差不多。- 修改Nacos配置文件conf下的application.properties文件
图像界面端口号尽量不要跟若依和8848冲突
nacos.console.port=8088
nacos.console.contextPath=/nacos # 路径可以没有
配置文件的若依数据库,先导入sql文件,
spring.sql.init.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
其他的没什么了,你随便看看吧- 启动startup.cmd -m standalone,好像要什么秘钥随便输入test启动,这里有可能会出错误,看报错信息,修改配置文件!好奇怪的问题,navicat激活mysql数据库才能启动。
- 访问http://localhost:8088/nacos,账号密码一般是nacos
- 配置列表里应该有9个配置文件,是数据库ry-config中的哦!编辑ruoyi-job-dev.yml、ruoyi-gen-dev.yml、ruoyi-system-dev.yml把数据库密码修改为自己的,应该大功告成了。
若依启动
微服务启动就不多说了,如果发现报错,看看redis启动没有啊,端口有没有啊等等
前端ruoyi-ui
npm install
npm run dev账号密码admin、admin,服务监控ruoyi,123456,nacos的ruoyi-monitor-dev.yml配置可以修改。
新建模块
右击->新建->模块->Java就可以了,注意父项哦!一般rouyi-modules下,pom.xml可以参考ruoui-modules-system,并且resources的bootstrap.yml也可以参考记得修改端口号9205,并且把应用名称修改自己的,也可以看他的controller怎么写的。
你是不是忘记了什么,对配置文件要上nacos配置!!!
直接参考ruoyi-system-dev.yml,创建配置模块名-dev.yml,配置格式一般YAML,编写配置。
# bootstrap.yml
# Tomcat
server:
port: 9205
# Spring
spring:
application:
# 应用名称
name: ruoyi-模块名
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# spring配置
spring:
redis:
host: localhost
port: 6379
password:
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: ruoyi
loginPassword: 123456
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
connectTimeout: 30000
socketTimeout: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
# 主库数据源
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# 从库数据源
# slave:
# username:
# password:
# url:
# driver-class-name:
# mybatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.模块名
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath:mapper/**/*.xml
# springdoc配置
springdoc:
gatewayUrl: http://localhost:8080/${spring.application.name}
api-docs:
# 是否开启接口文档,默认http://localhost:9205/swagger-ui/index.html
enabled: true
info:
# 标题
title: '模块接口文档'
# 描述
description: '模块接口描述'
# 作者信息
contact:
name: admin
还有banner.txt和logback.xml你直接从其他那里复制过来
开发
在com.ruoyi.模块名下创建RuoYi模块名Application,启动看看有没有问题,看报错信息很容易解决的
package com.ruoyi.模块名;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 系统启动程序
*
* @author ruoyi
*/
@EnableCustomConfig
@EnableRyFeignClients
@SpringBootApplication
public class RuoYi模块名Application
{
public static void main(String[] args)
{
SpringApplication.run(RuoYi模块名Application.class, args);
System.out.println("(♥◠‿◠)ノ゙ 模块名模块启动成功 ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +
" |(_ o _) / _( )_ .' \n" +
" | (_,_).' __ ___(_ o _)' \n" +
" | |\\ \\ | || |(_,_)' \n" +
" | | \\ `' /| `-' / \n" +
" | | \\ / \\ / \n" +
" ''-' `'-' `-..-' ");
}
}
创建controller看看是否正确,开发返回可以查看SysUserController怎么写的
package com.ruoyi.模块名.controller;
import com.ruoyi.common.core.web.controller.BaseController;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "管理")
@RestController
@RequestMapping("/test")
public class TestController extends BaseController {
@GetMapping("/list")
public String list() {
return "列表";
}
}
代码生成
怎么没有SQL结构导入啊,差评!
- 导入SQL到ry-cloud中
- 系统工具->代码生成->导入->选择表确定
- 编辑表,字段信息检查一下:插入编辑列表查询等,重要的是生成信息:ruoyi-ui前端类型应该是vue2吧,路径模块名等等修改,确认没有问题后提交
- 复制代码,可以预览或者生成代码下载都可以,注意看清楚是哪个文件夹下哦,不要搞错!系统管理中菜单管理可以修改目录
- 忘记说了要添加网关才能映射,修改配置文件ruoyi-gateway-dev.yml
# 添加模块,把system修改为自己的
- id: ruoyi-system
uri: lb://ruoyi-system
predicates:
- Path=/system/**
filters:
- StripPrefix=1