自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 Rust实现双向链表LinkedList

Rust实现双向链表LinkedList。

2022-12-29 20:13:13 743

原创 Spring Aop 自定义类注解和方法注解作为切点

用途:使一个注解既能修饰类也能修饰方法,当同时修饰类和方法时,方法注解优先级更高。自定义注解@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface TestAnnotation { String value() default "";}编写切面@Aspect@Componentpublic class TestAop {

2021-07-04 18:51:46 1504

原创 Spring Cloud Stream

核心概念应用模型应用通过Binder与消息队列绑定在一起,Binder由SpringCloud实现或第三方实现,例如:Spring Cloud Alibaba RocketMQ Binder, 你的代码通过inputs和outputs(它们都称为bindings,下文做详细介绍)与Binder相连接。destination binder与外部消息系统通信的组件,为构造 Binding提供了 2 个方法,分别是 bindConsumer 和 bindProducer ,它们分别用于构造生产者和消费者

2021-06-02 12:35:57 407

原创 React Hook 笔记总结

原文地址: https://zh-hans.reactjs.org/blog/2020/05/22/react-hooks.html在本文中,我们给函数式组件的函数起个简单一点的名字:render 函数。在本文中,为了方便描述,对于 render 函数的每次调用,我想称它为一帧。每一帧拥有独立的变量function Example(props) { const { count } = props; const handleClick = () => { setT

2021-06-02 12:12:58 136

原创 JS制作的解数独程序

介绍JS制作的解数独程序,输入已知的数字,自动填充未知的数字在线运行https://oleolema.github.io/sudoku源码https://github.com/oleolema/sudoku运行时截图

2021-06-02 11:51:57 127

原创 JS制作的2048

介绍JS制作的2048,下载源码修改Animation.js可自定义数字和颜色控制方式↑↓←→在线运行https://oleolema.github.io/2048源码https://github.com/oleolema/2048运行时截图

2021-06-02 11:00:10 166 2

原创 JS制作俄罗斯方块

介绍JS制作的俄罗斯方块,下载源码修改Shapes.js可自定义方块控制方式空格:降落↑:旋转↓:快速下降←:左移动→:右移动在线运行https://oleolema.github.io/tetris/源码https://github.com/oleolema/tetris运行时截图...

2021-06-02 10:31:25 181

转载 怎么解决VirtualBox无法安装增强工具(0x80004005)

点击「设备」-「安装增强功能」,然后就弹出下面这个东西,百度和 bing 了很久,终于解决啦~Unable to insert the virtual optical disk D:\Program\Orade\VirtualBox\VBoxGuestAdditions.iso into the machine lubuntu1810.Could not mount the media/drive 'D:\Program\Orade\VirtualBox\VBoxGuestAdditions.iso'

2021-05-21 10:58:20 1251 1

转载 Git 远程仓库入门教程

远程仓库远程仓库并不复杂, 在如今的云计算盛行的世界很容易把远程仓库想象成一个富有魔力的东西, 但实际上它们只是你的仓库在另个一台计算机上的拷贝。你可以通过因特网与这台计算机通信 —— 也就是增加或是获取提交记录话虽如此, 远程仓库却有一系列强大的特性首先也是最重要的的点, 远程仓库是一个强大的备份。本地仓库也有恢复文件到指定版本的能力, 但所有的信息都是保存在本地的。有了远程仓库以后,即使丢失了本地所有数据, 你仍可以通过远程仓库拿回你丢失的数据。还有就是, 远程让代码社交化了! 既然你的项目被托

2021-05-09 15:15:47 387

转载 Git 入门教程

Git commitGit 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样,但比复制粘贴优雅许多!Git 希望提交记录尽可能地轻量,因此在你每次进行提交时,它并不会盲目地复制整个目录。条件允许的情况下,它会将当前版本与仓库中的上一个版本进行对比,并把所有的差异打包到一起作为一个提交记录。Git 还保存了提交的历史记录。这也是为什么大多数提交记录的上面都有父节点的原因 —— 我们会在图示中用箭头来表示这种关系。对于项目组的成员来说,维护提交历史对大家都有好处。关

2021-05-09 01:22:11 279

原创 一行实现九九乘法表

JavaStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9).forEach(i -> Stream.concat(Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9).limit(i).map(j -> String.format("%s * %s = %s\t", j, i, j * i)), Stream.of("\n")).forEach(System.out::print));Spring ReactorFlux.range(1, 9).

2021-05-06 16:41:17 170

原创 Spring Reactor

Flux, 包含 0-N 个元素的异步序列Flux 是一个能够发出 0 到 N 个元素的标准的 Publisher,它会被一个“错误(error)” 或“完成(completion)”信号终止。因此,一个 flux 的可能结果是一个 value、completion 或 error。如果没有 onNext 事件但是有一个 onComplete 事件, 那么发出的就是 空的 有限序列// subscribe 首先触发request,然后onNext, 默认request(Long.MAX_VALUE

2021-05-05 22:40:18 2312

原创 spring cloud 文档整理

Spring CloudSpring官网文档(含版本兼容查询):https://spring.io/projects/spring-cloud#overviewMaven:Spring Cloud DependenciesSpring Cloud AlibabaSpring官网文档(含Maven):https://spring.io/projects/spring-cloud-alibaba中文文档:https://spring-cloud-alibaba-group.github.io/g

2021-04-10 15:04:05 115

原创 SpringActuator

端点常见端点Actuator中内置了大量的端点让我们使用,可用的端点如下默认启动的端点在Web中,默认启用的端点只有health、info,其余都是关闭的如何暴露端点include表示暴露的端点,exclude表示不要暴露的端点,exclude的优先级高于include,* 表示所有端点(注意:yaml中的 * 有特殊含义,如果使用了需要在两边添加引号),例子如下:management.endpoints.web.exposure.include=*management.endpoin

2021-04-05 18:15:58 520

原创 关于Java中lambda表达式的序列化

我在使用mybatis-plus的时候发现有这样一种写法:LambdaQueryWrapper<Board> wrapper = new LambdaQueryWrapper<>();// lambda方法引用queryWrapper.eq(User::getName, "小明");那么问题来了? 他是怎么通过 User::getName 来获取到字符串name的呢?通过查阅资料发现, 他是通过类似下面的代码实现的:@Datapublic class Person {

2021-03-04 16:35:08 880 5

原创 Java枚举类型通过Gson序列化与反序列化

enum ApiResultStatus { /** * 成功 */ SUCCESS(200), /** * 失败 */ FAILED(400), /** * 未定义 */ UNDEFINED(0); public int status; ApiResultStatus(int status) { this.status = status; }

2020-10-30 15:26:50 1163

原创 LocalDateTime, LocalDate, Instant, Long 相互转换

/** * LocalDateTime, LocalDate, Instant, Long 相互转换 */ @Test fun transform() { // LocalDateTime to LocalDate println(LocalDateTime.now().toLocalDate()) // LocalDateTime to Instant println(LocalDateTime.now(.

2020-06-14 10:44:11 9624 2

原创 Vim 常用命令

光标移动光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。h (左移) j (下行) k (上行) l (右移)欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>欲退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq <回车> 保存改动。在正常模式下删除光标所在位置的字符,请按: x欲插入或添加文本,请输入:i 输入欲插入

2020-06-13 15:50:09 226

原创 RabbitMQ - 安装配置及使用方法

安装拉取带有控制台的rabbitmq镜像docker pull rabbitmq:management运行docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672 rabbitmq:management控制台访问, RabbitMQ默认的用户名:guest,密码:guesthttp://localhost:15672使用rabbitmq不建议使用guest用户进行操作, 先新建一个用户, 并设置为admin添加一个virtu

2020-06-02 22:09:23 299

原创 Github action 持续部署 解决方案

要想使用Github action 一键自动部署 需要准备以下东西注册阿里云容器镜像服务一台与外网连通的linxu服务器首先到阿里云容器镜像服务中新建镜像仓库创建成功后进入仓库, 复制红色框内的仓库地址(空格后, 冒号前)然后进入github仓库添加下面这些变量, 注意变量名不要写错了, (这里的服务器指的是 你将要部署项目的linux服务器), 大家放心 这些密码一旦保存...

2020-04-25 17:15:20 1660 3

原创 stack Error: Can't find Python executable "python", you can set the PYTHON env variable

坑1 : stack Error: Can’t find Python executable “python”, you can set the PYTHON env variable.首先输入命令:npm install --global --production windows-build-toolsnpm config set python python2.7尝试使用yarn a...

2020-03-27 21:36:55 8118 1

原创 Typescript学习记录 - 装饰器

装饰器装饰器和java的注解很相像,用来标注或者修改类成员, 在ts中这是实验性的功能,要想使用必须开启装饰器特性开启装饰器tsconfig.json:{ "compilerOptions": { "target": "ES5", "experimentalDecorators": true }}类装饰器类装饰器是一个函数, 该函数必...

2020-03-17 01:27:10 143

原创 Typescript学习记录 - 泛型

泛型变量 function eat<T>(t: T): T { return t; } function loggingIdentity<T>(arr: T[]): number { //数组具有length属性,所以不会报错 return arr.length; }泛型函数 func...

2020-03-16 22:11:28 81

原创 Typescript学习记录 - 接口

属性类型接口描述对象属性的接口Interface初探限制一个对象的属性,可以直接使用{},但很不方便复用 //这里使用{ firstName: string }来限制name的类型 function printName(name: { firstName: string }) { console.info(name.firstName); } pr...

2020-03-15 16:41:26 87

原创 Typescript学习记录 - 类

类的定义类结构与java类似 class C { //属性 name: string; //构造函数 constructor(name: string) { this.name = name; } //方法 run() { console.info(...

2020-03-14 17:19:33 94

原创 Typescript学习记录 - 回顾ES5继承

B类继承A类的方法 function A(name) { this.name = name || 'a'; this.run = function () { console.info(`${this.name} -- ${this.age} -- run`); } } A.prototype.age = 21...

2020-03-14 16:53:19 92

原创 Typescript学习记录 - 函数

//没有写返回值的函数可以自动判断类型 (因此可以省略) let a1 = (() => { })(); //void let a2 = ((a) => { if (a) { return 1; } return "2"; })(); //string | numbe...

2020-03-13 22:49:40 78

原创 Typescript学习记录 - 不同于js的数据类型

数组定义的两种方法let arr1:number[] = [1,2,3];let arr2:Array<number> = [1,2,3];元组类型//[number,string] 指定了数组长度为2,并且下标0为number,1为stringlet arr3:[number,string] = [1,"1"];枚举类型/*枚举类型enum 枚举名{ ...

2020-03-13 17:35:30 251

原创 Swagger使用记录

第一步Maven依赖导入 <!-- swagger2 --> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfo...

2020-03-08 23:30:12 144

原创 解决Linux修改密码Enter new UNIX password: passwd: Authentication token manipulation error pas

原文地址:https://www.tecmint.com/fix-passwd-authentication-token-manipulation-error-in-linux/How to Fix “passwd: Authentication token manipulation error” in LinuxbyAaron Kili| Published: July 19,...

2020-03-07 12:34:00 3981

原创 vsftp安装配置

看了网上很多关于Ubuntu下vsftpd的安装配置教程,发现很多都是不可以用的,经过多次尝试,总结了一个Ubuntu 16.04下最简单的设置方法。第一步:安装VSFTPDsudo apt-get install vsftpd  安装完成后启动VSFTPD服务:service vsftpd start第二步:新建目录/home/uftp作为用户主目录sudo mkdir...

2020-03-07 12:32:00 114

原创 Git

1.安装 下载:在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。 配置:$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"Git相关概念working directory: 我们可...

2020-02-18 16:18:13 121

原创 rabbitmq 安装

安装docker pullrabbitmq:3-management运行docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq ID检查localhost:15672登录username:guestpassword:guest

2020-02-03 15:57:32 68

原创 elasticsearch 安装

安装docker pullelasticsearchdocker运行esdocker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01检查localhost:9200

2020-02-03 15:51:36 85

原创 解数独

题目描述数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这个“数独之谜”。据介绍,...

2020-01-27 19:51:47 235

原创 redis 事务

redis 事务基本操作MULTI标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由EXEC命令原子性(atomic)地执行。当命令输入错误时(输入时检查):事务被打断,整个事务不会被执行当命令语法错误时(运行时检查):事务正常执行,错误的语法命令将会抛弃 (这种2种错误在编写代码是可以避免的)EXEC执行所有事务块内的命令。...

2020-01-27 12:28:52 84

原创 docker 配置redis持久化

使用配置启动redis首先创建一个redis配置文件/etc/docker-conf/redis/redis.conf内容为下,注意:daemonize 不能启用yes# 端口port 6379# 后台运行 (docker中后台运行导致无任务可做而退出)daemonize no# 日志# logfile "6379.log"# 持久化文件夹# dir "ou...

2020-01-27 11:26:35 373

原创 nginx安装配置

安装:yum install -i nginx运行:nginx查看是否运行成功:netstat -pln|grep nginx若没有运行成功,应该是80端口被占用,输入 netstat -pln|grep 80 找到80端口的进程id 。 输入 kill -9 进程id 结束进程并重启nginx。配置:配置文件路径 /etc/nginx ...

2020-01-18 16:43:20 190

原创 栅格布局

使用display:grid; 设置栅格布局grid-template-rows设置每一行的大小grid-template-columns设置每一列的大小//使用值//设置了前三行每行高度为100px ,未设置的元素使用默认大小grid-template-rows:100px 100px 100px;//设置了第一列宽度为100px 第二列宽度50%grid-te...

2019-11-26 22:26:09 593

原创 弹性盒子

弹性盒子的相关词汇弹性容器的属性使用display: flex; 或者display: inline-flex; 来设置弹性容器,flex是一个块级元素,inline-flex是一个行内元素flex-flow属性是flex-direction和flex-wrap的简写flex-direction属性指定了内部元素是如何在 flex 容器中布局的,定义了主轴的方向(正...

2019-11-26 17:36:59 161

空空如也

空空如也

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

TA关注的人

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