https://gitee.com/y_project/RuoYi-Vue
感觉这个框架真不错 学习时遇到的问题一并记录
运行逻辑 需要跑后端 和前端 通过访问前端 前端转发请求到后端 后端处理数据后返回
前端vuecli 需要node环境 80端口
接口的访问走了个 vue.config.js文件的 devServer(这个配置下转发的请求)-proxy-pathRewrite 可以看到真正的接口地址和请求的参数都被替换了
后端 java springboot 8080端口
数据库是ry-vue 两个sql文件执行到一个数据库中
接口权限控制是 SecurityConfig 文件的 configure 方法 这里新增了一个接口的请求
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
//新增自定义权限控制
.antMatchers(
HttpMethod.POST,
"/api/**").permitAll()
还有的权限控制在 nacos 配置的 在 qhcrm-gateway-dev.yml 配置项下 添加到白名单中即可
spring:
cloud:
gateway:
discovery:
locator:
lowerCaseServiceId: true
enabled: true
routes:
#
- id: xxx-auth
uri: lb://xxx-auth
predicates:
- Path=/auth/** # 这里声明了api路径
filters:
# 验证码处理
- CacheRequestFilter
- ValidateCodeFilter
- StripPrefix=1
# 不校验白名单
ignore:
whites:
- /auth/login
接口流程相关
http://localhost:8080/auth/app/login 纯java环境下开发的真实默认接口 http://localhost:8080 为ip+端口号 java的运行地址 auth 为在nacos中注册的微服务的 别名 predicates: - Path=auth 后面的app/login则是在方法中定义的
java代码如下
@PostMapping("/app/login")
public R<?> appLogin(@RequestBody LoginBody form) {
通过vue的这些配置可以简化地址为http://127.0.0.1/dev-api/auth/app/login 含义为 将vue请求伪装成以及凡是请求http://127.0.0.1/dev-api/的 都转发到 http://localhost:8080/ 下
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8080`,
//target: `http://82.156.105.220:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
可以再次通过nginx的反向代理 美化地址
肯定是 通过VUE_APP_BASE_API配置的 可能是自动部署的 待验证
cloud
按http://doc.ruoyi.vip/ruoyi-cloud/ 文档部署即可
原理 通过nacos 配置数据库密码 等 配置 其也是个微服务需要首先运行 需要注意的是 按照若依框架的配置生成的数据库
4、创建数据库ry-config并导入数据脚本ry_config_2021xxxx.sql(必须)
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置
# db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=password
这里就完成了 nacos 和若依cloud的配置关联
可能会报 找不到 maven-compiler-plugin
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
搜索 该插件最新版本 填上版本即可