【Springboot】使用若依vue前后台分离版遇到的坑

前言

使用VS Code编写springboot代码需要安装的插件(个人习惯,仅供参考):

  • Debugger for Java
  • Spring Initializr Java Support
  • Language Support for Java™ by Red Hat
  • Maven for Java
  • Spring Boot Extension Pack
  • MybatisX

1.为了使用swagger方便调试,不验证权限

找到SecurityConfig文件

ruoyi-framework\src\main\java\com\ruoyi\framework\config\SecurityConfig.java

第一步

为了避免出现类似这种状况
{ "msg": "请求访问:/store/production/list,认证失败,无法访问系统资源", "code": 401 }
改这里

.antMatchers(
	HttpMethod.GET,
	"/",
	"/*.html",
	"/**/*.html",
	"/**/*.css",
	"/**/*.js",
	"/profile/**", 
	"/**/**" // 在这加这个
).permitAll()

anonymous() 允许匿名用户访问,不允许已登入用户访问
permitAll() 不管登入,不登入 都能访问

第二步

为了避免出现这种状况
{ "msg": "获取用户信息异常", "code": 401 }
改这里

@EnableGlobalMethodSecurity(
	prePostEnabled = false, // 改这个
	securedEnabled = true
)

2.SQL相关

2.1 union、union all、or 效率对比

union
表链接后会利用字段的顺序进行排序,以此筛选掉重复的数据行,最后再返回结果。因此,当数据量很大时 union 效率很低

union all
相比 union,union all 在表链接时不会删除重复的数据行,直接返回表联合后的结果。因此,union all 执行效率要高很多,在不需要去重和排序时,更推荐使用 union all

or
or 用于 SQL where 子句中,SQL 脚本可读性更高,但是它会引起全表扫描,根本不走索引查询。所以通常情况下,union [all] 查询会利用索引进行查询,执行效率要高于 or

* 但是当 or 条件中查询列相同,or 的执行效率要高于 union。

2.2 exists、in 使用场景

由于 SQL 做子查询最优方案是小表驱动大表。
对于 in 来说是子查询表驱动外表,当子查询表数据少于主表数据时推荐使用。
exists 是外表驱动子查询表,因此当外表数据少于子查询表时更推荐使用。

2.3 in、or 效率对比

如果in和or所在列有索引(包括主键索引),or和in没啥差别,执行计划和执行时间都几乎一样
如果in和or所在列没有索引的话,随着in或者or后面的查询条件的增加,in的耗时不会有太大的增长;但是or的耗时基本上是指数级增长,所以优先选用 in

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Spring BootVue.js 都是非常流行的技术,可以使用它们来开发前后端分离的应用程序。 下面是一些步骤: 1. 创建一个 Spring Boot 项目 可以使用 Spring Initializr 创建一个新的 Spring Boot 项目,该项目包含 Web 和 Thymeleaf 依赖项。 2. 添加 Vue.js 使用 npm 安装 Vue.js,并将其添加到你的项目中。可以使用以下命令进行安装: ``` npm install -g vue ``` 3. 创建 Vue.js 应用程序 在你的项目中创建一个名为 "frontend" 的目录,并在其中创建一个名为 "src" 的子目录。在 "src" 目录中创建一个名为 "main.js" 的文件,并将以下内容添加到该文件中: ``` import Vue from 'vue' import App from './App.vue' new Vue({ render: h => h(App), }).$mount('#app') ``` 在 "src" 目录中创建一个名为 "App.vue" 的文件,并将以下内容添加到该文件中: ``` <template> <div id="app"> <h1>{{ message }}</h1> </div> </template> <script> export default { name: 'App', data () { return { message: 'Hello Vue!' } } } </script> ``` 4. 使用 Webpack 打包 Vue.js 应用程序 使用 Webpack 打包 Vue.js 应用程序,将生成的文件放置在 "src/main/resources/static" 目录下。 5. 配置 Spring BootSpring Boot 应用程序中配置静态资源路径,以便可以在浏览器中访问 Vue.js 应用程序。 可以在 "application.properties" 文件中添加以下内容: ``` spring.resources.static-locations=classpath:/static/ ``` 6. 运行应用程序 使用以下命令在本地运行应用程序: ``` ./mvnw spring-boot:run ``` 然后,在浏览器中访问 "http://localhost:8080",即可看到 Vue.js 应用程序。 这只是一个简单的例子,你可以在此基础上进一步扩展你的应用程序,例如:使用 REST API 与后端通信,使用 Vuex 管理状态等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饺子大魔王12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值