openfeign1.feign是什么?
Feign 是一个声明式的 Web 服务客户端。它使得编写 Web 服务客户端变得更加容易。要使用 Feign,你需要创建一个接口并对其进行注解。它支持可插拔的注解,包括 Feign 注解和 JAX-RS 注解。Feign 还支持可插拔的编码器和解码器。Spring Cloud 增加了对 Spring MVC 注解的支持,并允许使用 Spring Web 默认使用的相同 HttpMessageConverters。Spring Cloud 集成了 Eureka、Spring Cloud CircuitBreaker,以及 Spring Cloud LoadBalancer,以在使用 Feign 时提供负载均衡的 HTTP 客户端。
2.快速使用
导入openfeign和负载均衡器依赖
<!--openfeign--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cl ...
GitGit官网
介绍
Git是一个开源的分布式版本控制系统,用于高效地处理从小到大的项目。Git由Linus Torvalds创建,用于管理Linux内核开发。与集中式版本控制系统不同,如CVS或Subversion,Git采用分布式版本库的方式,不需要服务器端软件支持。这使得源代码的发布和交流变得非常方便。Git的速度很快,特别适合大型项目的版本管理。
常用命令Git的常用命令包括但不限于以下几个:
git init:初始化一个Git仓库。
git clone [url]:克隆一个仓库到本地。
git add [file]:添加文件到暂存区。
git commit -m "[message]":提交更新,并附加一条提交信息。
git status:查看仓库当前的状态,显示有变更的文件。
git push [alias] [branch]:将本地分支的更新推送到远程仓库。
git pull [alias] [branch]:从远程仓库拉取更新并合并到本地。
git branch:列出所有本地分支。
git checkout [branch-name]:切换到指 ...
打开控制面板,搜索计划,点击计划任务
右键任务计划程序库,创建任务
常规
触发器
操作,22:55触发,240秒后启动,也就是22:59关机
条件
添加这个条件后,即使电脑在休眠,也会自动唤醒电脑然后关机!
设置
最后保存即可,这样就能在断电前一分钟让电脑自动关机了,可以通过查看执行记录看看任务有没有正常执行或者自己写一个脚本添加在关机指令之后的第二条指令
Apifox官方文档
登录自动更新token
问题:使用apifox测试接口时,令牌过期后,需要重新登录,然后复制粘贴替换全局变量的token,有点麻烦,而且不注意可能会复制错误,怎么实现运行登录接口后自动将返回数据中的token值更新,然后其他请求自动携带全新的token呢
1.给登录接口添加后置操作
1.1 打开项目的登录接口,添加该接口的后置操作
1.2 随便设置一个变量名字,然后点击小箭头
1.3 左边是返回结果的结构,书写jsonpath表达式 ,$代表左边的json对象,然后就像访问对象属性一样写就可以了,最后看看提取结果和左边是不是对上了,最后点击确定保存,我的token是data中的token,所以是 $.data.token
1.4 保存接口文档后测试接口
1.5 如果上面操作无误,点击右上角按钮可以看到在本地环境多了一个变量值token,并且值就是返回结果的token
2.设置项目所有接口的auth认证
2.1 如图依次点击,key的名字根据自己需要设置,value的值从环境变量读取
2.2 读取变量选择之前设置的变量,确定后保存 ...
nacos注册中心1. 下载Nacos Server 下载 | Nacos
2. 启动
解压缩后在bin目录下有几个脚本,startup就是启动脚本,默认都是集群cluster方式启动,也可以使用单机standalone模式启动
# 单机模式启动 ./startup.cmd -m standalone# 集群模式启动./startup.cmd
[!note]
启动后默认端口8848,直接在浏览器打开http://localhost:8848/nacos 进行访问,默认用户名和密码都是nacos可以在conf/application.properties文件中修改端口server.port
3. 导入依赖<!--nacos--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency ...
tools
未读
github仓库页面的这种标签是怎么生成的?
1.基本使用Static Badge | Shields.io 可以生成各种标签,可以自定义,比如我想生成一个背景颜色蓝色标签,名称为mytag就可以使用mytag-blue,前面是名称后面是颜色(可以是16进制颜色)
2.版本号也可以指定版本号mytag-v1.2.3-blue,注意版本号在颜色前面
3.图标Simple Icons 提供了很多产品的logo,比如我想使用redis的logo,直接搜索redis,点击右下角可以复制名字,左下角可以复制配色
返回sheilds页面,点击展开显示更多参数
生成后的效果
4.动态生成标签以仓库提交数为例,搜索commit,注意==cacheSeconds==的设置
标签
搜索关键字
示例
仓库提交数
commit
仓库发行版本
github release
tools
未读Markdown简介
Markdown 是一种轻量级的标记语言,可用于在纯文本文档中添加格式化元素。Markdown 由 John Gruber 于 2004 年创建,如今已成为世界上最受欢迎的标记语言之一
专注于文字内容;
纯文本,易读易写,可以方便地纳入版本控制;
语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排版。
基本使用字体*斜体文本*_斜体文本_**粗体文本**__粗体文本__***粗斜体文本***___粗斜体文本___
斜体文本,Ctrl I(此处只针对typora编辑器)斜体文本粗体文本,Ctrl B粗体文本粗斜体文本粗斜体文本
分割线——- enter
**** * ******- - -----------
删除线如果段落上的文字要添加删除线,只需要在文字的两端加上两个波浪线 ~~ 即可,实例如下:clb.pages.dev
~~clb.pages.dev~~
下划线下划线可以通过 HTML 的 <u> 标签来实现:带下划线文本
<u>带下划线文本</u>
脚注脚注是对文本的补充说明,鼠标悬浮 ...
Pinia
[!note]
Pinia是什么?
Pinia 是 ==Vue 的存储库==,它允许您跨组件/页面共享状态
vue项目中有很多页面view,这些view之间相互独立,登录页面会拿到后端传回的token,但是其他页面并没有token,可以将token保存在pinia,其他页面都可以访问pinia(相当于全局变量),另外pinia基于内存存储,刷新浏览器数据就会丢失,使用persist插件可以将数据==持久化==
1.安装用你最喜欢的包管理器安装 pinia:
yarn add pinia# 或者使用 npmnpm install pinia
安装pinia持久化插件persist
yarn add pinia-persistedstate-plugin# 或者使用 npmnpm install pinia-persistedstate-plugin
2.使用2.1 在main.js中导入pinia和persist并使用
import {createApp} f ...
问题:jwt令牌一旦生成,就不能再更改,有时候想让令牌提前失效该怎么办?
解决方案:使用redis对token进行二次校验,由redis来管理token的过期时间
1.保存token到redis在用户登录方法中,生成token,并保存一份到redis中
@Overridepublic Result<ReaderVo> login(LoginDto reader) { Reader r = readerMapper.selectByName(reader.getUsername()); //用户不存在 if (r == null) { return Result.error(Excep.USER_NOT_EXIST); } String pwd = r.getPassword(); //密码错误 if (!pwd.equals(reader.getPassword())) { return Result.error(Excep.WRONG_PASSWORD); ...
Axios
Axios是什么?
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests
1.安装使用npm安装:
npm install axios
使用yarn安装:
yarn add axios
2.包装统一请求工具因为后端地址是一样的,假设是localhost:8080,只是请求路径不一样,我们可以定义一个baseURL,此处使用/api是为了解决跨域问题
1.先包装一个工具request.js
import axios from "axios";const baseURL = "/api";const instance = axios.create({baseURL});export default instance;
2.在vite.config.js文件中添加配置,将/api删除 ...