自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot加了拦截器后出现的跨域问题解析

1.背景起初解决跨域问题的方法是直接在Controller上添加@CrossOrigin注解,实现了前后端分离中的跨域请求。但随着业务代码的编写,做了token会话保持的检验,添加了拦截器后,再次出现了跨域问题。很纳闷,讲理说后台已经允许了跨域请求,之前的测试也证明了这一点,那为什么又突然出现了跨域拦截问题呢?2.前言前端Vue中axios的配置我没有做任何改变,所以不用考虑是前端的问题,而...

2020-01-22 15:42:10 8394 18

原创 Green Sock | GSAP 动画库

**GreenSock Animation Platform(GSAP)**是一个业界知名的动画工具套件,在超过1100万个网站上使用,其中包括大量获奖网站! 您可以使用GSAP在任何框架中制作几乎任何JavaScript可以触及的动画。无论你是想制作UI、SVG、Three.js还是React组件的动画,GSAP都能满足你的需求。核心库包含创建快速、跨浏览器友好的动画所需的一切。除了核心,还有各种插件。你不需要学习它们来开始,但它们可以帮助解决特定的动画挑战,如基于滚动的动画,可拖动的交互,变形等。

2024-01-03 17:20:00 1355 1

转载 LRU 算法

上述我们的容器最大容量的单位是键值对的个数,这是不太合理的,因为实际中我们应该限制的是缓存占用大小,因此可以将最大限制改成byte为单位,而且需要对淘汰算法进行优化,这时候我们可能超出容量后,需要淘汰的不止是一个缓存,可以是多个,直到当前已用内存小于最大内存。这样做的目的是更好地适应特定访问模式,对于某些场景可以提供更好的性能。那么该数据结构就是当存储队列到达上限时,清除的是最久未被访问的节点,该节点一般认为是最可能无用的节点,保留下来的是最近都有使用过的节点,因此可以实现对"有用"数据的最大程度保留。

2023-08-08 16:23:44 193

原创 etcd

民间文档:http://www.topgoer.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C/go%E6%93%8D%E4%BD%9Cetcd/%E6%93%8D%E4%BD%9Cetcd.html官方文档:https://github.com/etcd-io/etcd/blob/main/client/v3/README.md。

2023-08-04 14:38:23 704

原创 oh my zsh及其插件安装

1.oh my zsh安装oh-my-zsh依赖于zsh,需要先安装zsh:yum -y install zsh如果当前的shell不是zsh,输入chsh后,输入/bin/zsh,回车。安装oh my zsh,执行官方的脚本:zsh -c "$(curl -fsSL https://gitee.com/whereabouts-fork/ohmyzsh/blob/master/tools/install.sh)"若失败则手动安装:git clone https://gitee.com/

2022-05-15 01:00:25 3024

原创 发布npm命令行脚本

1.初始化npm项目npm init -y执行命令后会生成package.json文件,文件中有一些配置项,根据实际情况修改:name:包的名字,默认是这个文件夹的名字,要求不能是npm上重名的。version:包的版本,默认是1.0.0description:包描述main:入口文件,默认是index.jskeyword:包的关键词,用于npm上搜索。author:作者license:开源协议2.编写脚本入口文件index.js,需要在第一行添加 #!/usr/bin/env

2021-11-06 18:03:19 620

原创 Node.js中使用ES6报错

背景index.js:import hello from './cpoy';hello();cpoy/index.js:const hello = () => { console.log("hello world!")}export default hello在 package.json 中添加了"type": "module"配置。报错Directory import xxxx is not supported resolving ES modules importe

2021-11-06 15:35:26 4344 2

原创 Axios使用封装和跨域

1.安装npm install axios --save# 或者yarn add axios2.请求方式Get、Delete请求:这类请求也称作query请求。第一种方式为拼接url的形式传参:axios.get('/user?username=korbin&password=12345').then(function (res) { console.log(res);}).catch(function (err) { console.log(err);});

2021-10-03 03:34:57 623

原创 DDD领域驱动Golang实践

web-template-dddGithub地址:https://github.com/whereabouts/web-template-ddd1.简述基于DDD架构的Web服务快速构建模板。DDD领域驱动设计是一个很宽泛的方法论,涉及到的概念也很多,DDD并没有给出标准的代码模型,不同的人可能会有不同理解。该模板项目尝试通过不断的理解领域驱动,结合DDD的思想和规范,构建出一个代码目录结构,将DDD落地。2.DDD分层架构分层架构有一个重要的原则:每层只能与位于其下方的层发生耦合。具体又

2021-09-10 01:06:40 2807

原创 React中ESLint对a标签href属性警告

问题描述在React中如果使用了a标签,但是又没有给a标签的href属性赋值有效的链接地址,则ESLint会警告,看着很烦。The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resem

2021-09-08 00:25:18 1758

原创 protobuf中的omitempty字段处理

问题描述proto文件自动生成.pb.go文件的代码中tag上会自动加上omitempty字段,如下:type RoleUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json

2021-09-06 19:07:35 2091

原创 React 笔记

文章目录简介虚拟DOMReact脚手架函数式组件类式组件组件3大核心属性React路由setState生命周期React UI组件库 AntdLazyLoadFragmentContextRedux组件通信方式总结Component优化Error boundary(错误边界)使用自定义配置文件CSS IN JS持续补充中…简介由Facebook开源的,用于动态构建用户界面的 JavaScript 库(只关注于视图)。具有如下特点: 1.声明式编码2.组件化编码3.React Native 编

2021-08-31 23:26:02 159

原创 yarn快速上手

1.介绍在 Node.js 生态系统中,依赖通常安装在项目的 node_modules 文件夹中。然而,这个文件的结构和实际依赖树可能有所区别,因为重复的依赖可以合并到一起。npm 客户端把依赖安装到 node_modules 目录的过程具有不确定性。这意味着当依赖的安装顺序不同时,node_modules 目录的结构可能会发生变化。这种差异可能会导致类似 “我的电脑上可以运行,别人的电脑上不行” (即:完整可运行的项目上传到 git 上,别人 Pull 下来以后,npm install 会报错) 的情况

2021-08-28 16:55:15 218

原创 Windwos下搭建MongoDB集群

文章目录1.下载MongoDB2.集群描述1.下载MongoDB去MongoDB官网下载解压版免安装的压缩包,https://www.mongodb.com/try/download/community:2.集群描述在同一台Windows机上安装三个MongoDB实例,1主(27018),1从(27019),1裁决(27020)。MongoDB版本为4.4.6,4.x支持事务,要求是在集群模式下。...

2021-07-14 01:07:26 1278

原创 Golang在Linux下部署环境快速搭建

文章目录1.安装Go环境2.安装MongoDB2.1 下载安装2.2 开启权限认证1.安装Go环境首先去Golang中文网选择对应版本的安装包:https://studygolang.com/dl,复制下载链接 https://studygolang.com/dl/golang/go1.15.12.linux-amd64.tar.gz:cd到/usr/local/src:cd /usr/local/src将压缩包下载到该目录下:wget https://studygolang.com/dl/

2021-05-16 15:44:35 921 1

原创 JDK和Maven在Windows下安装和配置

文章目录1.JDK1.1 下载安装1.2 配置环境变量1.3 验证安装2.Maven2.1 下载安装2.2 配置环境变量2.3 修改本地仓库位置2.4 配置阿里云的中央仓库2.5 验证和测试1.JDK1.1 下载安装前往官网下载 http://www.oracle.com/technetwork/java/javase/downloads/index.html ,选择对应的版本:选择适合自己电脑版本的JDK,64位可以兼容32位操作系统,32位不可以兼容64位操作系统,x86为32位,x64为64

2021-05-08 13:20:34 1529 1

原创 Node.js在Windows下安装和配置

文章目录1.什么是Node.js2.下载和安装3.依赖包路径配置4.配置npm阿里镜像1.什么是Node.jsNode.js简单的说就是运行在服务端的 JavaScript;Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境;Node.js使用一个事件驱动、非阻塞式 I/O 的模型,使其轻量且高效;Node.js的软件包生态系统npm是全球最大的开源库生态系统。2.下载和安装直接前往Node.js官方网站下载:https://nodejs.org/en

2021-05-06 16:49:31 366 2

原创 Golang在Windows下开发环境快速搭建

文章目录1.下载安装包2.安装及验证1.下载安装包官网在不科学上网的情况下不容易打开,可前往Golang中文网下载各个版本的安装包:https://studygolang.com/dl 。提示:如果要使用Go-Mirco建议安装1.14版本,因为目前还不支持1.15及其以上的版本,详见:Go-Micro启动依赖报错解决方法2.安装及验证运行下载的Golang安装包,选择好安装目录,一直Next就可以了,值得一提的是Golang的安装程序会为我们自动配置好环境变量:安装成功后验证一下是否安

2021-04-19 18:52:53 565

原创 ElementUI表单校验的validate方法返回参数始终为true的问题

问题描述按照官方例子调用validate方法:this.$refs.registerForm.validate((valid) => { console.log(valid) if (valid) { // this.registerNext = true } else { return false } })发现不管表单中内容是否检验通过,valid参数的值始终为true。原

2021-03-15 23:28:00 7109 2

原创 Windwos下MongoDB4.x安装配置及密码设置

文章目录1.下载和安装2.配置和使用3.密码设置4.登录验证1.下载和安装直接进入MongoDB官网 https://www.mongodb.com/,点击下图处进入下载页面:选择平台为Windwos,包为msi,直接点击下载:打开安装包后选择custom自定义安装目录,如果之前安装过会多一个remove按钮,先移除之前安装的版本:为了避免后续安装和配置出错,建议安装前先完全卸载之前的MongoDB服务,先在服务里面查看是否有MongoDB相关的服务,有的话则以管理员身份运行cmd,然后执行

2021-02-26 00:13:57 1419 2

原创 Golang解决跨域问题

文章目录1.什么是跨域2.使用CORS解决跨域问题2.1 简单请求2.2 非简单请求2.3 配置CORS以解决跨域问题3.Golang解决跨域拦截1.什么是跨域由于浏览器的同源策略限制,进而产生跨域拦截问题。同源策略是浏览器最核心也最基本的安全功能;所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会

2021-02-24 20:51:34 5160

原创 Golang实现SHA256加密和Base64编码

1.前言JWT的生成规范中常用到Base64 URL编码和SHA256加密算法,好消息是Golang原生包提供了对应的实现。2.Base64 编码Golang内置支持Base64编码解码,Go的encoding/base64包遵照RFC 4648规范实现了base64编码解码功能,包括标准方式以及URL/文件名称安全方式编码。2.1 Base64 标准方式编码解码RFC 4648规范约定标准Base64对任何二进制数据使用US-ASCII字符子集进行编码,字符包括:A-Z, a-z, 0-9, +

2021-02-23 23:59:16 2741 2

原创 JWT详解及Golang实现

文章目录1.背景2.概述3.组成3.1 Header3.2 Payload3.3 Signature4.令牌的校验5.续期方案5.1 方案15.2 方案26.Token总结7.Golang代码实现1.背景HTTP协议是一种无状态的协议,这意味着用户提供账号和密码进行登录认证后,下次再请求的时候,仍然需要认证,因为服务器并不知道是谁发送的请求,并不知道该用户已经认证过一次。 所以为了解决这一问题,保持客户端与服务端的会话状态,在服务器的缓存中需要为每位用户分配一份存储空间,用于存储用户的个人登录信息

2021-02-23 23:37:39 5131

转载 360浏览器下页面样式显示异常的解决方法

1.问题描述最近由于自己在浏览器使用体验上的差异,从Chrome换为了国产的360浏览器。然后项目在本地开发测试的时候,完全正常;但是在打包部署到服务器后,再用360浏览器访问网页时发现CSS错乱, 页面显示异常。但在换用Chrome、Firefox、QQ浏览器、Edge等其他浏览器访问又是正常的。2.问题分析其他浏览器能够正常访问页面,说明是360浏览器自己的问题。后来发现我的360浏览器默认的采用了:兼容模式,如下图所示:于是尝试性的将模式切换为:极速模式 后,发现页面重新加载,显示正常了。并

2021-01-30 19:23:05 3556 1

原创 Golang开源发布自己的包

文章目录1.前言2.新建仓库3. 构建项目和代码4.提交和发布代码5.引入和使用包1.前言我们平时在Golang项目的编码过程中,除了经常通过import使用官方提供的依赖包,也经常通过go get -u github.com/xxx/xxx命令下载第三方包来使用。那么我们如何将自己封装的包开源发布出去,让所有人都可以像使用其他三方包一样使用我们的包呢?2.新建仓库首先在我们的 Github 上新建一个仓库,权限选择 Public(默认):仓库创建成功后,我们得到仓库地址,通过git clone

2020-12-11 12:52:33 5751

原创 Go-Micro微服务框架使用

1.Go-Micro微服务框架简介Go-Micro类似Java中的SpringCloud,虽然生态上有一些区别,但是可以类比比较。官当Github地址为 https://github.com/micro/go-micro,下载安装依赖命令:go get -u github.com/micro/go-micro2.创建Web服务Golang本身提供了丰富的http包,并且Gin等Web框架实现一个Web服务,但是为了贴合Go-Micro框架的统一规范,所以需要通过使用Go-Micro的github.

2020-12-09 23:54:42 990

原创 Go-Micro客户端请求报500错误的解决方法

1.服务端package mainimport ( "github.com/gin-gonic/gin" "github.com/micro/go-micro/registry" "github.com/micro/go-micro/web" "github.com/micro/go-plugins/registry/consul" "net/http")func main() { consulReg := consul.NewRegistry(registry.Addrs(":85

2020-12-09 23:12:44 3073 1

原创 Golang中log日志包的使用

文章目录1.前言2.log包介绍3.log包的使用3.1 日志输出方法3.2 自定义创建日志对象3.3 封装自定义日志包3.4 log包进一步解析1.前言作为后端开发人员,日志文件记录了发生在操作系统或其他软件运行时的事件或状态。技术人员可以通过日志记录进而判断系统的运行状态,寻找导致系统出错、崩溃的成因等。这是我们分析程序问题常用的手段。2.log包介绍在Golang中记录日志非常方便,Golang提供了一个简单的日志记录包log,包中定义了一个结构体类型 Logger,是整个包的基础部分,包中的

2020-12-01 11:02:26 3162

原创 Golang获取命令行参数的方式

1.介绍当我们希望通过命令行启动Golang程序,获取输入的各种形式参数时,该如何处理呢?2.os.Argsos.Args是一个string的切片,用来存储所有的命令行参数,包括go run main.go这部分,整体编译后实际是生成和运行的main.exe文件,所以第一个参数是main.exe。示例如下:func main() { for i ,v := range os.Args { fmt.Println(i, v) }}命令行携带参数启动:go run main.go -nam

2020-11-27 23:53:46 1790

原创 Go-Micro启动依赖报错解决方法

启动报错# github.com/coreos/etcd/clientv3/balancer/pickerD:\GoPath\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\err.go:37:44: undefined: balancer.PickOptionsD:\GoPath\pkg\mod\github.com\coreos\[email protected]+incompatible\client

2020-11-26 14:19:07 1096

原创 Golang依赖下载安装失败解决方法

在已经搭建golang和git环境后,并在挂了VPN的情况下,cmd中运行命令:go get github.com/astaxie/beego #下载依赖成功go get -u github.com/beego/bee #安装bee脚手架失败在安装bee脚手架时,要么是卡住,要么是如下的报错:原因还是因为被墙了,解决方法是更改golang的配置,主要修改环境变量和设置代理:set GO111MODULE=onset GOPROXY=https://goproxy.io然后重新执行安装命令

2020-10-09 15:02:03 3857

原创 Golang基础学习笔记(二)

文章目录12.Golang中的包12.1 Go中的包的介绍和定义12.2 Go包管理工具 go mod12.2.1 go mod init初始化项目12.2.2 引入其它项目的包12.3 Golang中自定义包12.4 Go中init()初始化函数12.4.1 init函数介绍12.4.2 init函数执行顺序12.5 Go中的第三方包12.5.1 方法1:go get 包全名 (全局)12.5.2 方法2:go mod download (全局)12.5.3 方法3:go mod vendor 将依赖复制

2020-10-08 23:49:31 511

原创 Golang基础学习笔记(一)

文章目录1.Golang的数据类型1.1 Golang中精度丢失问题1.2 byte 和 rune类型1.3 修改字符串1.4 基本数据类型转换2.Golang的流程控制2.1 for range(键值循环)2.2 switch case2.3 goto:跳转到指定标签3.Golang的数组3.1 数组定义和初始化3.2 数组的值类型3.3 切片定义(引用类型)4.Golang的切片4.1 为什么要使用切片4.2 基于数组定义切片4.3 切片的长度和容量4.4 切片的本质4.5 使用make函数构造切片4.

2020-10-07 00:22:45 582

原创 分布式 Dubbo+Zookeeper

文章目录1.分布式系统简介2.Dubbo分布式服务框架2.1 Dubbo简介2.2 Dubbo入门使用2.3 Dubbo其他特性3.Zookeeper注册中心3.1 Zookeeper简介3.2 Zookeeper安装3.2 Zookeeper+Dubbo使用1.分布式系统简介分布式系统,即是将一个项目中的各个服务分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向服务的架构(SOA)。分布式系统可以看做是若干个独立计算机的集合,这些服务在不同的计算机上部署,但还是属于同一个项目。分布式系统

2020-08-16 00:46:48 316

原创 窗口滑动算法

文章目录1.求无重复字符的最长子串1.1 思路分析1.2 算法实现2.求最小覆盖子串1.求无重复字符的最长子串LeetCode题目 3. 无重复字符的最长子串 :给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"

2020-08-14 21:23:27 460

原创 动态规划算法

文章目录1.动态规划解决背包问题2.动态规划求最大回文子串2.1 思路分析2.2 算法实现第1步:定义状态第2步:思考状态转移方程第3步:考虑初始化第4步:考虑输出第5步:考虑优化空间2.3 参考代码1.动态规划解决背包问题详情参考另一篇博文: 14.常用10大算法-3.动态规划算法。通过该文可以先了解动态规划算法的基本思想,在此基础上更容易理解下文题目的解题思路。2.动态规划求最大回文子串LeetCode题目 5. 最长回文子串:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s

2020-08-14 21:08:07 201

原创 分布式和微服务的区别

简单的来说,微服务是一种架构风格,是架构设计层面的概念;而分布式是一种项目系统的部署方式,是部署层面的概念。分布式分布式,即是将一个项目中的各个服务分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向服务的架构(SOA)。服务之间一般通过RPC(远程过程调用)来进行交互(调用)。其核心其实相当于是对RPC的应用,将一个整体项目中的各个服务进行拆分,将原本在本地调用的方式改为分开部署、远程调用,实现对系统一定程度的解耦,便于某个核心业务的单独横向扩展(集群)。微服务架构微服务是一种架构风格

2020-08-13 23:38:58 11687 1

原创 SpringBoot全局异常统一处理

文章目录1.SpringBoot默认错误统一处理机制2.全局异常统一处理3.自定义SpringBoot错误统一处理3.1 继承AbstractErrorController类3.2 实现ErrorController接口4.Filter过滤器中特殊情况下的错误处理1.SpringBoot默认错误统一处理机制在基于SpringBoot的Web应用中,对于Http请求处理过程中发生的各种错误,如常见的400、404和500等错误,SpringBoot默认提供了一种映射到错误页面/error的机制来处理所有的

2020-08-13 22:31:04 6580

原创 Java注解和反射机制

文章目录1.注解1.1 注解介绍1.2 内置注解1.3 元注解1.4 自定义注解2.反射机制2.1 Java反射机制概述2.2 获取Class类对象2.2.1 类的class属性2.2.2 Object.getClass()方法2.2.3 Class.forName()方法2.2.4 ClassLoader类加载器2.3 Class类的常用方法2.3 类的加载与ClassLoader2.4 创建运行时类的对象2.5 获取运行时类的完整结构2.6 调用运行时类的指定结构1.注解1.1 注解介绍注解(An

2020-08-10 02:19:58 306

原创 Java多线程编程详解

文章目录1.多线程的相关概念2.Java中创建线程2.1 继承Thread类2.2 实现Runable接口2.3 实现Callable接口3.线程的状态3.1 线程的5大状态介绍3.2 sleep方法改变线程状态3.3 yield方法改变线程状态3.4 join方法改变线程状态3.5 更改线程优先级3.6 用户线程和守护线程4.多线程同步4.1 多线程同步原理4.2 synchronized同步锁4.3 死锁4.4 Lock同步锁对象5.多线程通信5.1多线程通信问题介绍5.2 管程法5.3 信号灯法6.线

2020-08-08 22:21:51 626

职工管理系统C语言源程序代码.c

C语言大一工程实践职工管理系统,花里胡哨,贼棒~

2020-01-02

数据库SQL Server学习PDF

压缩包中包含数据库SQL Server学习PDF,涉及基本的增删查改,游标、存储器等内容。

2019-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除