自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小糖豆

记录知识,共创未来。

  • 博客(176)
  • 资源 (7)
  • 论坛 (4)
  • 收藏
  • 关注

原创 ES6高阶总结

promisePromise 是异步编程的一种解决方案,主要解决回调地狱的问题,因为有的需求需要先完成某一个步骤,再进行下一个步骤,或者下一个步骤需要上一个步骤的结果。三种状态:pending(进行中)、resolved | fulfilled(火狐)(已成功)和rejected(已失败)只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为resolve

2021-10-26 18:03:56 120 1

原创 ES6语法基础总结

letvar a = 1;全局变量,能重复声明,可以先使用,在声明let a = 1 全局声明即全局变量,局部声明即局部变量,不能重复声明,必须先声明后使用const a = 1 常量,常量只能在声明时赋值,并且一旦赋值不能修改,其他和let类似解构赋值对象的解构赋值对象的解构赋值let obj = { a: 1, b: 2, c: 3};let {a,c} = obj; console.log(a,c);//输出1 3数组的解构赋值 let arr =

2021-10-19 17:42:27 80

原创 react使用ReactEchartsCore的时候如何清除缓存

前言最近在做项目的时候,发现柱状图切换的时候出了问题,比如legend有12个,切换以后接口返回的数据只有9个,9个中没有12个中的三个就会显示,但实际上是应该没有的。解决 <ReactEchartsCore notMerge={true} echarts={echarts} option={Option} />加上notMerge={true}即可解决。option (必需,对象):echarts 选项配置,可以查看https://echarts.apache.org/optio

2021-09-16 16:24:08 6

原创 喂狗判断?如何处理websocket请求没有数据返回的情况下数据归零

前言最近遇到一个需求,就是前端接收到的websocket数据,如果只返回了几条数据,后面没有返回了,就会出现页面一直显示最后一次数据的情况,但实际业务可能需要数据归零或者清空不显示。这时候怎么判断呢,问了同事,同事说做一个喂狗判断,我一脸懵逼。其实就是监听数据返回,如果一直没有变化,就做对应的处理(归零或者不显示等)处理方式这里采取的方式是使用useEffect监听websocket返回的数据是否有变化。上代码: let timer : any useEffect(() => {

2021-09-07 15:35:10 20

原创 记一次echart使用过程踩的坑

前言本来用的echart版本是4.9.1,按照官方的文档以及网上的博客,确实没什么问题,但是由于要做油表图,不得不升级到5.1.2版本,然后之前做的图例很多都出了问题。问题1从4.9升级到5.12后,之前用富文本编辑器rich做的图例换行,并且对其的效果失效了,又变成了没有间距,缩到一行去了。主要原因是设置的width失效了,然后仔细看文档,也没错啊,知道看到这里然后抱着试一试的心态,加了个backgroundColor,竟然就可以了,官方文档也不说清楚,搞不懂、完整代码这块代码做了兼容,因为

2021-07-27 19:42:56 30

转载 React Hooks: 深入剖析 useMemo 和 useEffect(转载)

背景最近 React 团队发布消息,称他们即将基于 Hooks 重写官方文档,Function Component 即将代替 Class Component 成为官方主推的开发方式。大家可能都开始慢慢从 Class Component 转向 Hooks,但是理想和现实还是有些差距,我们团队从 2019 年开始尝试使用 Hooks,事实也证明 Hooks 非常适合我们的业务场景,从一定程度上来讲可是大大提升了开发体验也降低了代码的维护成本,但是一方面项目旧代码主要还是基于 Class Component,另

2021-04-16 15:42:38 314

原创 springCloud入门及服务的注册与发现-(1)

前言springCloud即微服务,是当前最流行的架构之一,为什么会出现微服务,这得从系统结构的历史说起。最开始是单体应用架构,即所有的功能模块甚至包括前端全部在一个web容器中运行。这显然很多问题,后来变成将不相关的应用分别开发,但依旧是将很多功能堆积在一起,再后来是SOA,即将公用的可复用的抽离出来,显示服务的快速再生。但是这样抽取的粒度太大,而且耦合度高。微服务是在此基础上进一步优化,没一个功能模块都可以是一个项目,颗粒度低,微服务之间采用Restful等轻量协议传输。大概知道是怎么

2021-02-26 14:11:27 61

原创 springBoot使用swagger-ui实现接口可视化调用-(2)

前言接口写好以后怎么测试?交给前端调用接口测试?效率太低了!使用Postman调用接口测试,可以,但不是很方便最好的方法就是所有接口可视化,想调用哪个就调用哪个!实现接口可视化调用第一步加入swagger-ui依赖 <!-- 接口可视化 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId

2021-02-20 18:05:36 141

原创 springBoot的基本使用及与其他框架的整合-(1)

Springboot是什么?1、springboot是在spring的基础上进一步封装,让以前繁杂的配置全部简化,从而快速构建项目。2、对主流框架无配置集成,提高开发效率。3、内置tomcat无需先部署在运行白话:轻量级使用简单,spring的升级版,减少了大量繁琐的配置,因为springboot已经预配置了大部分。快速搭建springboot项目springboot创建项目与之前相同,没什么大的区别。创建一个常规的mavne项目。在pom.xml文件中导入依赖 <pare

2021-02-20 17:51:29 244

原创 温故而知新(8)-Java基础之网络编程

前言两个概念简单看看网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守,最终完成数据交换。TCP/IP协议:传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输

2021-02-20 10:37:05 32

原创 温故而知新(7)-Java基础之文件操作、递归的使用

前言此文主要简单记录文件的基本用法,以及网络编程的使用文件操作获取文件对象 // 通过父路径和子路径字符串 方式一 String parent = "d:\\aaa"; String child = "bbb.txt"; File file3 = new File(parent, child); // 文件路径名 方式二 String pathname2 = "D:\\aaa\\bbb.txt"; File file2 = new File(pathname2

2021-01-26 16:50:55 39

原创 温故而知新(6)-Java基础之字节流、字符流、缓冲流、转换流的使用

前言先来一个流的大致分类分类输入流输出流字节流字节输入流 InputStream字节输出流 OutputStream字符流字符输入流 Reader字符输出流Writer上面的类都是流的超类。为什么会有字节流和字符流?因为如果使用字节输出流,在读取有些字符(中文字符)的时候,可能读取不全,因为一个中文占取多个字节,字符流一次读取是一个字符。OutputStream字节输出流OutputStream 是表示字节输出流的所有类的超类常用方法:public v

2021-01-08 17:29:15 55

原创 温故而知新(5)-Java基础之线程的使用

前言一个应用程序可能有多个进程,一个进程可能有多个线程,多线程并非同时进行,而是充分利用cpu的资源,因为其切换时间很短,所以直观上认为是并行的。创建线程的两种方式不管是哪种方式,都需要重写run方法,所有的业务处理都在这里继承Thread自定义线程类:public class MyThread extends Thread { //定义指定线程名称的构造方法 public MyThread(String name) { super(name); //调用父类的Strin

2020-12-09 16:58:38 36

原创 温故而知新(4)-Java基础之集合的使用(list、set、map)

前言集合是日常中最常用的数据结构,我们从数据库中查找数据,总是需要通过各种处理,然后将对应的结果或者中间值存到集合中,最终将数据以集合或者其他形式(如json)输出。常见的数据结构数据存储的常用结构有:栈、队列、数组、链表和红黑树栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。特点先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)队列队列:queue,简称队,它同堆栈一样

2020-12-08 18:07:11 42

原创 使用css实现四边形实现四角边框

四边形实现四角边框

2020-12-01 14:09:19 1245

原创 react使用hook实现子组件给父组件简单传值

react使用hook实现子组件给父组件简单传值

2020-12-01 14:00:01 4551

原创 温故而知新(3)-Java基础之常用工具类的使用

Scanner类一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数:Scanner sc = new Scanner(System.in);int i = sc.nextInt();备注:System.in 系统输入指的是通过键盘录入数据。例子:import java.util.Scanner;public class Test01Scanner { public static void main(String[] args)

2020-11-14 17:16:59 73

原创 温故而知新(2)-Java基础之类和对象、封装、构造方法、继承、抽象类、接口及多态的使用

前言什么是类。这个概念有点虚,算是一种标准吧,是属性和行为的合集。对象是类的具体实现,一个对象中包含了属性和行为,什么是属性和行为,比如一个小猫有名字、体重,这就是属性,他可以跑。可以叫,这就是行为。为什么需要面向对象的编程,因为很多行为及其附带的属性需要封装到一个对象中,使用的时候只需要声明这个对象,就可以使用其中的行为即方法,而抽象类、接口等都是为了代码整体架构的适用性更高而发明的。对象的使用成员变量的默认值对象内存图成员变量和局部变量成员变量是声明在类中的,局部变量是声明在方法中的。

2020-11-13 16:37:29 37

原创 温故而知新(1)-Java基础之数组的使用及原理

前言闲暇之际,突然想看一下java基础,因为以前学的时候有些东西可能理解的并不是很透彻,前面还有一些基础,比如运算符,常量、变量、ifelse等。太简单了,就不写了,但大家可以去复习一下数据类型及其字节数废话不多说,直接上干货。此文章只适合有经验的同学看看。数组声明方式第一种int[] arr = new int[3];arr[0]=1;第二种int[] arr = new int[]{1,2,3,4,5};第三种int[] arr = {1,2,3,4,5};数组原理

2020-11-12 17:12:37 114 2

原创 Rabbitmq的高级应用(过期时间、死信队列、延迟队列、消息追踪、消息日志)

过期消息解释消息队列中,有些消息可能一直不会被消费,可以设置过期时间,防止消息队列堵塞,可以通过两种方式设置,一种是xml配置的方式,一种是代码的方式,这里写一下代码配置的方式/**过期消息* 该消息投递任何交换机或队列中的时候;如果到了过期时间则将从该队列中删除*/@Testpublic void ttlMessageTest(){MessageProperties messageProperties = new MessageProperties();//设置消息的过期时间,5 秒

2020-11-04 11:18:56 686

原创 Rabbitmq整合springboot实现消息队列简单案例

前言此篇需要springboot基础,springboot简单来说是一个集成框架,使用springboot简化了绝大多数的框架,可以直接使用rabbitTemplate直接发送消息,大概步骤为新建maven项目,加入springboot依赖,然后配置生产者与交换机以及队列路由的绑定,然后发送消息。消费端直接用一个注解注释,监听某个队列消息,然后消费即可。生产者项目第一步 新建maven项目新建maven项目,并且加入相关依赖。 <!-- 这是springboot依赖,是一个大的集合,里面已经

2020-10-31 14:51:48 595

原创 Rabbitmq的几种工作模式介绍

前言上一篇文章对mq做了简介,并且说了rabbitmq的六种模式,这篇文章主要记录一下这几种模式是什么样的,以及怎么用的。第一种不再说,跟简单。一下几种模式均有对应的案列代码供参考,请看https://github.com/Coderxiangyang/Rabbitmq/tree/master/rabbitmq-01-hellowork queues模式这种模式和hello world模式差不多,只不过是多个消费端,主要是应对消息太多,处理不过来的情况。多个消费端可以共同消费一个队列中的消息,他们的

2020-10-28 18:09:46 1222

原创 Rabbitmq基础之概述分类

前言Rabbitmq归属于mq,mq的全称是 Message Queue,又称消息队列/消息中间件,其实应用程序与应用程序之间的通信方法。作用在项目中,可将一些无需即时返回且耗时的操作提取出来,进行 异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而 提高了 系统的吞吐量 吞吐量。就是直接把数据丢到消息队列,放到另一个程序去处理,这样可以及时返回结果,不会造成堵塞。如图:如果没有了消息队列。高峰时期服务器承受不了。有了消息队列,高峰时期,直接丢到消息队列,由消费者慢慢处理就可以了

2020-10-28 15:29:37 65

原创 Centos 7 安装Rabbitmq及角色权限设置

在线安装依赖环境:yum install gccyum install socat安装Erlangyum install erlang安装 rabbitmqrpm -ivh http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm开启管理界面rabbitmq-plugins enable rabbitmq_management启动rabbitmqserv

2020-10-27 15:06:52 245

原创 Netty应用之粘包拆包及编码解码

前言为什么要把编码解码和粘包拆包放在一起呢?原因是粘包拆包的解决方案就是利用编码解码。当 Netty 发送或者接受一个消息的时候,就将会发生一次数据转换。入站消息会被解码:从字节转换为另一种格式(比如 java 对象);如果是出站消息,它会被编码成字节。编码解码这里简单说一些编码器解码器的接口MessageToMessageEncoder对应MessageToMessageDecoderMessageToByteEncoder对应ByteToMessageDecoder上面一个是编码,一个是

2020-10-22 19:56:49 117

原创 Netty应用之实现websocket长连接

前言有时候前后端交互的时候,会用到websocket。这时前端是用js代码实现的,后端需要写一个websocket服务供前端调用,netty也可以实现websocket服务端,下面是实现案例代码服务器端package com.huali.netty.websocket;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelIn

2020-10-21 16:51:31 343

原创 Netty核心模块API说明及其使用

前言建议先去看看https://github.com/Coderxiangyang/NettyExercise/tree/master/NettySimple这个案例,在阅读下面的文章,理解效果会更好。此文主要记录Netty常用的模块以及API。梳理一下代码顺序,先使用引导器,加载各种配置,然后加载各种handler(业务处理类),然后客户端去连接服务端的IP地址以及端口,服务端监听端口即可。然后获取通道,将数据写入通道即完事。Bootstrap ServerBootstrap解释Bootstra

2020-10-21 15:28:36 141

原创 Netty架构概述及其原理说明

为什么要用Netty架构前面一篇文章写了java原生支持的NIO模型也是可以实现网络数据传输的,为什么还有Netty出现呢?NIO的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等

2020-10-20 16:24:20 132

原创 Netty架构基础之BIO NIO AIO网络编程模型

前言公司业务需求,需要用到tcp数据传输,基于java自带的socket太low,而且编程复杂,市面上比较流行的netty比较适合。学习netty之前,先简单总结一下各种数据传输类型。java支持的类型Java 共支持 3 种网络编程模型/IO 模式:BIO、NIO、AIOJava BIO:理解: 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销适用场景:BIO 方式适用于连接数目

2020-10-19 20:28:36 382 3

原创 html知识点之利用css四边形切角并且加上边框

前言这几个月做了很多前端工作,其中一个需求还是蛮头疼,UI给的图上面的四边形是一个带斜边的,直接用背景图可以实现,但是会出现各种布局的问题,比如内容太大了,边框不会跟着扩大,废话不多说,这里写一些如何利用css话四边形带有斜边,并且给斜边加边框,在这之前,先简单说一下需要用到的函数linear-gradient()函数#grad { background-image: linear-gradient(red, yellow, blue);}看上面的代码是从头部开始的线性渐变,从红色开始,转为

2020-09-14 20:06:07 1104 1

原创 typeScript知识点之装饰器的使用

前言装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为。通俗的讲装饰器就是一个方法,可以注入到类、方法、属性参数上来扩展类、属性、方法、参数的功能。常见的装饰器有:类装饰器、属性装饰器、方法装饰器、参数装饰器装饰器的写法:普通装饰器(无法传参) 、 装饰器工厂(可传参)类似于java设计模式中的装饰模式。类装饰器类装饰器在类声明之前被声明(紧靠着类声明)。 类装饰器应用于类构造函数,可以用来监视,修改或替换类定义。 传入一个参数普通装饰器(无法传参)fun

2020-09-10 16:54:03 266

原创 typeScript知识点之泛型的使用

前言泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持,让组件的复用性更强。例如你有一个需求,需要写一个方法,但又需要同时支持number和string两种数据类型的参数,这个时候,你就必须定义两个方法,但你也可以定义传入的参数类型为any,但是这样就无法限制传入参数的类型。泛型的基本使用传统方法function getData1(value:string):string{ return value;}function getData2(value:number):num

2020-09-09 18:06:56 108

原创 typeScript知识点之接口的定义和使用

前言typescript中的接口。跟java中的用法基本上是一样的,跟类也有类似的地方,比较简单,其目的也是为了规范代码,例如定义一个属性接口,则传入的数据必须包含这些字段,如果定义一个方法的接口,则实现他的类必须实现他的所有方法。属性类接口属性类接口,就是定义一个接口,里面有n个字段,然后作为参数,或者结果接受,这样可以规范参数的名称和类型。传统的typescript中是这样写的function printLabel(label:string):void { console.log('p

2020-09-09 15:37:48 321

原创 typeScript知识点之类的定义和使用

前言原来typescript中还有类。简直跟java一毛一样了。。类中可以定义属性,可以定义方法而且还有继承、多态,学会java的应该比较容易理解吧类的基本定义class Person{ name:string; constructor(name:string){ //构造函数 实例化类的时候触发的方法 this.name=name; } getName():string{ return this.name; }

2020-09-08 17:55:29 239

原创 typeScript知识点之函数的使用

前言typescript中函数的定义跟es5 es6中的方式可能不太一样,其中包含函数返回值、匿名函数、函数重载、函数传参等最基本的函数定义无参数 function run():string{ return 'run'; }有参数function getInfo(name:string,age:number):string{ return `${name} --- ${age}`; }无返回值函数 function run():void{ console

2020-09-08 17:32:01 121

原创 typeScript知识点之数据类型的使用

前言在传统的js语法中,所有数据类型直接用var a=xxx,typescript中,为了使编写的代码更规范,更有利于维护,增加了类型校验,跟java一样,一个变量定义以后,你给他赋值必须是对应的数据类型,不然的话就会报错。在typescript中主要给我们提供了以下数据类型布尔类型(boolean)数字类型(number)字符串类型(string)数组类型(array)元组类型(tuple)枚举类型(enum)任意类型(any)null 和 undefinedvoid类型.neve

2020-09-08 16:02:14 112

原创 redux及react-redux的使用(大致使用方法)

前言学习react之后,我们知道react中的传值是通过props,但其仅限于父子组件之间的传值,如果一个项目层级很深(如某个全局样式),而又需要从第一个层级传到最后一个层级,如果使用props一层一层的传值很麻烦,而且容易出错,所以针对这个问题,使用react-redux比较好!以前的文章写过上下文传值的方式,但其也比较麻烦,慎重,容易给自己挖坑!虽然redux和react-redux的实现原理也是在上下文的基础上实现的,但是其被封装并且已经比较成熟完善redux的使用使用redux值传递流程

2020-09-03 17:06:54 143

原创 react知识点之HOOK的使用(useState、useEffect、useMemo、useCallback的使用及自定义HOOK)

目录为什么会有HOOK?useState、useEffect的使用。useState用法useEffect用法useMemo的使用(主要针对当前组件中使用函数,优化性能)useMemo的使用(主要针对子组件中使用函数,优化性能)自定义HOOK使用注意点(Hook 就是 JavaScript 函数)注意点为什么会有HOOK?如果你在编写函数组件并意识到需要向其添加⼀一些 state,以前的做法是必须将其它转化为 class。现在你可以在现有的函数组件中使⽤用 HookuseState、useEffec

2020-08-26 17:56:32 1896 1

转载 react知识点之Component和PureComponent深度解析

Component和PureComponent的区别介绍React.PureComponent 与 React.Component 几乎完全相同,但 React.PureComponent 通过props和state的浅对比来实现 shouldComponentUpate()。在PureComponent中,如果包含比较复杂的数据结构,可能会因深层的数据不一致而产生错误的否定判断,导致界面得不到更新。如果定义了 shouldComponentUpdate(),无论组件是否是 PureCompone

2020-08-21 17:50:40 1623

原创 react快速写代码之snippets的使用(vscode工具)

针对使用vscode开发代码的同学,目前已知有两种快速写代码的方式方式1-使用vscode中的插件方法:打开vscode,找到如图1左边的插件扩展按钮搜索simple react snippets,本来试了一些第一种,但是发现功能并不是很多,建议选择如图中红框中的插件,功能比较多然后点击插件,可以看到有哪些快捷键。这里只截图一部分(图2)方式2-自定义snippets第一种使用插件的方式,有时候无法满足自己的需求,第二种当时就是自定义模板,但是比较麻烦,需要自己懂转义字符,这里不细说

2020-08-21 12:00:47 813

springboot+vue前后端完整demo.zip

springboot+vue前后端完整demo.zip

2019-06-10

模拟ATM登陆取款存款修改密码程序

这个是javaATM大作业的最后源代码,模拟了一个人取款,存款,以及登陆,修改密码的功能,主要用的知识点有SWing,IO流对文本文件的操作,正则表达式,参数的传递等,希望对你有所帮助

2016-01-03

百度地图瓦片生成工具-免费.zip

瓦片图生成工具,这款是免费的,用法很简单,基本上一看就会,是免费的

2019-05-20

百度地图瓦片生成工具-收费.zip

瓦片图生成工具,这款是收费的,可以试用,试用教程和作者联系方式在文档中都有

2019-05-20

mysql-connector-java-5.1.4.jar.rar

mysql-connector-java-5.1.44.jar包,可用于逆向生成实体类以及xml

2019-09-20

基于reactjs的十几个简单的demos

reactjs demo,很简单的十几个基于reactjs的demo,可以用于入门

2018-03-30

Erlang-win64_20.1

Erlang20,使用rabbitmq需要先安装这个插件,安装教程https://blog.csdn.net/hzw19920329/article/details/53156015

2018-04-18

空空如也

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

TA关注的人 TA的粉丝

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