自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LuckySheet打印工具类

LuckySheet使用POI实现打印工具类

2024-01-09 13:49:08 628

原创 SpringBoot优化启动速度

spring-graalvm-native是springBoot3非常大的一个特性,支持使用GraalVM将Springboot的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。在启动类上使用@indexed注解,项目打包的时候会在项目中生成META-INF/spring.components 文件(索引文件)G1,ZGC垃圾回收。

2023-07-25 17:23:24 704

原创 HashMap学习笔记

1、源码:1、序列化版本号 private static final long serialVersionUID = 362498820763181265L;serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过 判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出

2022-12-16 16:14:16 152

原创 Map删除元素异常

Map集合删除指定Key的元素由于HashMap底层使用数组加链表的方式实现当直接使用map.remove(key)删除元素时,可能下一个节点的指针无法找到这里需要使用迭代器Iterator删除,否则抛出ConcurrentModificationException异常for (Iterator<Map.Entry<String, List<DxNormalDataManager>>> it = dataMap.entrySet().iterator(); it.h

2021-03-27 09:38:40 675

原创 JUC重点详解

一、前瞻1、什么是JUCjava.util.concurrent包2、线程与进程一个进程往往包含多个线程java默认有两个线程:main、GC(垃圾回收)java真的可以开启线程吗?不可以,底层使用C++,java无法直接操作硬件1>线程六大状态 //新生 NEW, //运行 RUNNABLE, //阻塞 BLOCKED, //等待 WAITING,

2021-01-26 14:13:55 934

原创 Mybatis逆向工程自动生成mapper映射

Mybatis逆向工程自动生成mapper映射一、首先添加依赖<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</art

2020-09-06 11:28:31 689

原创 SpringCloud——高级(三)Alibaba Sentinel 熔断与限流

Alibaba Sentinel 熔断与限流一、Sentinel1、官网官网中文官网2、是什么与Hystrix比较.随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心...

2020-04-24 11:58:57 494

原创 Linux下升级jdk版本

Linux更改jdk版本首先下载我们需要的jdk版本查看linux主机的jdk版本:java -version服务器上jdk版本是1.7的想换成1.8的1、首先去官网下载Linux版本的jdk1.82、将下载好的jdk压缩包上传到/user/java文件夹下3、之后对导入的压缩包进行解压tar -zvxf jdk-8u11-linux-x64.tar.gz...

2020-04-11 14:44:28 1115

原创 SpringCloud Alibaba——高级(二)Nacos 服务注册和配置中心

Nacos 服务注册和配置中心一、Nacos简介1、是什么一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos:Dynamic Naming and Configuration service就是注册中心+配置中心的组合等价于Nacos=Eureka+Config+Bus2、能干嘛替代Eureka做服务注册中心替代Config做服务配置中心3、去哪下下载...

2020-04-09 15:47:55 2084 2

原创 SpringCloud Alibaba——高级(一)入门简介

SpringCloud Alibaba 入门简介一、为什么会出现SpringCloud alibabaSpring Cloud Netflix 项目进入维护模式意味着Spring Cloud Netflix 将不再开发新的组件二、SpringCloud alibaba带来了什么1、是什么官网2018.10.31,Spring Cloud Alibaba正式入驻了SpringClou...

2020-04-09 10:49:19 1236

原创 SpringCloud——中级(六)分布式请求链路跟踪 Sleuth

消息驱动 Sleuth一、概述1、为什么会出现这个技术?需要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。2、是什么Sleuth使用Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案...

2020-04-08 14:44:32 213

原创 SpringCloud——中级(五)消息驱动Stream

消息驱动 Stream一、消息驱动概述1、是什么1)一句话屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型官方定义SpringCloud Stream是一个构建消息驱动微服务的框架2)官网官网重:Binder对象(绑定器)2、设计思想1)标准MQ生产者/消费者之间靠消息媒介传递信息内容——Message消息必须走特定的通道——MessageChannel消息通...

2020-04-08 13:14:18 245

原创 SpringCloud——中级(四)消息总线 Bus(含RabbitMQ)

消息总线Bus(含RabbitMQ)一、概述1、对Config的加深和扩充分布式自动刷新配置功能Spring Cloud Bus 配合 Spring Cloud Config使用可以实现配置的动态刷新2、是什么Bus支持两种消息代理:RabbitMQ和KafkaSpring Cloud Bus 是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机...

2020-04-07 15:06:57 393

原创 SpringCloud——中级(三)Config分布式配置中心

SpringCloud Config分布式配置中心一、概述1、分布式系统面临的配置问题2、是什么3、能干嘛4、与GitHub整合配置5、官网二、Config服务端配置与测试三、Config客户端配置与测试四、Config客户端之动态刷新...

2020-04-07 13:40:39 266

原创 Spring Cloud Config分布式配置中心访问失败404

服务端无法获取git仓库一直报错:org.springframework.cloud.config.server.environment.NoSuchRepositoryException: Cannot clone or checkout repository:XXXX解决方法:1、GitHub的仓库需要设置成public2、需要在配置文件中增加本地仓库配置路径:spri...

2020-04-07 11:34:59 2169 2

原创 SpringCloud——中级(二)服务网关Gateway

Gateway新一代网关一、概述简介1、官网上一代zuul 1.X官网当前的gateway2、是什么gateway是原zuul1.x版的替代版Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。SpringCloud Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了Nett...

2020-04-06 15:17:58 634

原创 SpringCloud——中级(一)Hystrix断路器

Hystrix断路器一、概述1、分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,...

2020-04-04 14:55:52 366

原创 SpringCloud——初级(三)OpenFeign服务接口调用

OpenFeign服务接口调用一、概述1、OpenFeign是什么官网Feign是一个声明式WebSerrvice客户端。使用Feign能让编写Web Serrvice客户端更加简单。它的使用方法是定义一个服务接口然后再上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageCo...

2020-04-04 14:11:42 383

原创 SpringCloud——初级(二)Ribbon

Ribbon负载均衡服务调用一、Ribbon概述1、是什么Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端负载均衡工具。主要功能是提供客户端的软件负载均衡算法和服务调用。官网Ribbon现在已经进入维护模式未来替换方案:Spring Cloud Starter Loadbalancer2、能干嘛主要做负载均衡Ribbon和Nginx的...

2020-04-03 15:18:12 177

原创 使用Docker安装Consul后无法正常启动

在使用docker安装consul后,想要运行consul,多次运行失败,或者无法在Windows上访问Web UI界面使用如下指令:wsdocker run -d -p 8500:8500 -h node1 --name node1 consul agent -server -client 0.0.0.0 -ui主要是后面加-client 0.0.0.0,Consul将接受绑定到所...

2020-04-03 11:42:56 1962

原创 docker下的zookeepe 查看当前连接的服务节点名称

进入服务器:docker exec -it 容器id /bin/bash进入bin目录:cd bin开启客户端:zkCli.sh查看当前连接的服务节点名称:ls /services

2020-04-01 18:05:48 1078

原创 springcloud——初级(一)Eureka、Zookeeper、Consul

cloud初级一、服务注册中心一、Eureka1、什么是服务治理Spring Cloud 封装了Netflix公司开发的Eureka模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之前依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。2、什么是服务注册与发现Eureka采用了CS...

2020-03-31 16:54:59 183

原创 lombok常用注解的使用

常用注解:@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。@Getter :使用方法同上,区别在于生成的是getter方法。@ToString :注解在类,添加toString方法。@EqualsAndHashCode: 注解在类,生成hashCode和equals方法。@NoArgsConstructo...

2020-03-31 10:28:19 162

原创 Cloud从零开始

一、统一版本cloud—>Hoxton.SR1boot—>2.2.2.RELEASEcloud alibaba—>2.1.0.RELEASEJava—>Java8Maven—>3.5及以上Mysql—>5.7及以上二、基于分布式的微服务架构常用技术与实现1、服务注册与发现(EUREKA)1.Eureka停更,现在推荐使用Zookeeper、Co...

2020-03-30 17:43:55 258

原创 springboot+vue 前后端分离的跨域问题

使用Postman测试接口完美通过,但是在前段使用axios访问的时候老是报‘Access-Control-Allow-Origin’错误。解决方法如下:在vue项目中config/index.js文件中找到proxyTable: {}在里面添加如下代码:proxyTable: { '/api': { target: 'http://localhost:8080/',...

2020-03-26 15:54:35 487

原创 关于mobiscroll.js 仅显示年和月

$(function () { var currYear = (new Date()).getFullYear(); var opt = {}; opt.date = { preset: 'date' }; opt.default = { theme...

2019-07-09 17:45:19 1169

原创 调用微信扫码接口实现扫一扫功能

直接上源码:先要引入js文件在点击按钮的时候,绑定scan()方法即可实现 function scan() { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 ...

2019-06-25 10:58:56 10573 4

原创 关于canvas画布转图片的问题

//我这里是用qrcode生成二维码后打印功能,由于qrcode生成的二维码是画布(canvas)画出来的,所以打印时不会展示出来,所以要先将canvas转换成图片,然后打印<script type="text/javascript"> $(document).ready(function () {//生成二维码 $("#qrcode...

2019-04-15 16:26:46 657

原创 解决图片上传预览时,图片显示问题

需要上传图片预览.但是第二次上传图片显示的时候发现之前的图片没有改变.,地址中的图片已经变了,后经过分析发现是地址相同第二次改变img src属性的时候图片未发生改变,浏览器第二次不会去请求服务器解决方法:在路径后面加个随机值就OK了。让浏览器请求路径不一样,就会每次都去请求服务器了。propaganda3Img.ImageUrl = "../../image/ club.jpg"+ "?...

2019-03-20 16:23:24 909 1

原创 EasyUI 关于datagrid 数据加载

 function show(ID) {            TypeID = ID;            var columns = [[//列表中展示的列                      {field: 'RptID', title: "报表ID", width: 220, sortable: true, fitColumns: true },                  ...

2018-07-12 11:32:09 179

原创 EasyUI 树的加载

js中:    $(function () {function LoadTree() {            $('#tree_Type').tree({                url: 'Tree.aspx?r=' + Math.floor(Math.random() * 1000),                onClick: function (node) {         ...

2018-07-12 11:27:17 380

原创 关于EasyUI下拉列表的数据绑定

&lt;input id="selParent" /&gt;在javaScript的窗体加载事件中:   $(function () {            var TypeName = '&lt;%=TypeName %&gt;';            $('#selParent').combobox({                url: 'AJAX.ashx',           ...

2018-07-10 12:01:09 861

原创 关于EasyUI表头和数据错位的问题

如果所有浏览器都是错位,那么请检查你的列中的 field是否有重名的,第二个field的名字是否在实体中存在,注意大小写。如果谷歌好的,ie8坏的,那就是兼容性问题。easyui datagrid 1.3.3开始使用jquery2.0,对ie6,7,8兼容性不好了,这个要注意哦!还有一点就是我引用的EasyUI的样式和文件是版本比较低的,而做的时候是看着高版本的EasyUI做的,有时候也会出现数据...

2018-07-10 11:56:46 3520 1

转载 C#中Trim()、TrimStart()、TrimEnd()的用法:

C#中Trim()、TrimStart()、TrimEnd()的用法:    这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。      如果这三个函数带上字符型数组的参数,...

2018-07-05 13:33:17 138

原创 关于c#中#region和#endregion的用法

#region 核对列                if (i == 0)                {                    #region                    if (r[0].StringValue.Trim() != "实验室编号")                    {                        err += "第1列应为 ...

2018-06-25 16:11:57 1384

原创 关于EasyUI的数值输入框

关于EasyUI1、NumberBox(数值输入框)数值输入框是用来限制用户只能输入数值型数据的。他可以转换一个输入的元素到其他类型,比如:数字、百分比、货币等。更多的输入类型定义依赖于'formatter'和'parser'函数&lt;input type="text" class="easyui-numberbox" value="100" data-options="min:0,precis...

2018-06-23 17:09:54 2030

空空如也

空空如也

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

TA关注的人

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