自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (1)
  • 收藏
  • 关注

原创 git rebase -i 修改提交历史信息等高级命令

注意:git rebase -i HEAD~3 与git log 出来的顺序是相反的,rebase出来的最下面是最新的,log是第一条是最新的。git log 查看日志,复制需要更改的前一个commintId 使用输入i进入编辑模式然后将pick需要改为reword(简写位r)或者其他的可以看到,三个 commit 都列了出来,前面的 pick 就是指定怎么处理这个 commit。然后wq保存后如果有冲突就使用idea解决冲突,然后可以使用修改提交信息,如果其他没有改动也可以使用。

2024-04-10 10:17:15 368

原创 springboot配置多数据源以及事务问题

Primary@Primary@Primary此种方式使用起来分层明确,不存在任何冗余代码,不足地方就是每个库都需要对应一个配置类,该配置类中实现方式都基本类似,该种解决方案每个配置类中都存在事务管理器,因此不需要单独再去额外的关注。在使用时需要指定事务管理器关于采用Spring AOP方式实现原理就是把多个数据源存储在一个 Map中,当需要使用某个数据源时,从 Map中获取此数据源进行处理。

2024-02-29 19:59:50 886

原创 Linux:curl命令

比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了。curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com。内置option: -b。其中,-X POST -d, -X GET -d, -X PUT -d 分别等价于-F, -G -d, -P。

2024-01-16 01:17:59 1047

原创 Swagger2以及Spring Boot整合Swagger2教程

Swagger 是一个规范和完整的框架,用于生成、描述、功能调用测试和可视化 RESTful 风格的在线的接口文档工具。Swagger 是一套基于 OpenAPI 规范(OpenAPI Specification,OAS)构建的开源工具。Swagger 提供了一套通过代码和注解自动生成可视化的 RESTful 风格的API文档,符合 RESTful API设计的行业标准。

2024-01-09 17:33:33 1012 1

原创 oracle:生产32位uuid

【代码】oracle:生产32位uuid。

2024-01-08 14:49:00 526

原创 Lombok遇到的问题

常用的几个注解:@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法@AllArgsConstructor : 注在类上,提供类的全参构造@NoArgsConstructor : 注在类上,提供类的无参构造@Setter : 注在属性上,提供 set 方法@Getter : 注在属性上,提供 get 方法@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法。

2023-12-28 14:27:42 960

原创 Springboot项目启动成功后可通过五种方式继续执行

项目初始化完毕后,才会调用方法,提供服务。

2023-12-06 13:37:11 300

原创 springboot聚合项目打包

(1)将所需引入的子模块通过mvn install打包后以jar包的方式引入。将build标签以及内部内容全部删除即可。(1)进行jar包的统一管理;

2023-07-13 13:35:41 954

原创 mybatisplus # $区别

是先取值后预编译(字符串拼接后,进行编译)对应的变量自动加上单引号 ’ ',变为字符串。对应的变量是不会被加上单引号 ’ ’ 的。的方式编写的sql时,

2023-05-31 15:26:13 400

原创 java输出“☐、☑”等特殊符号

【代码】java输出“☐、☑”等特殊符号。

2023-05-30 10:13:08 657

原创 java发送http请求的几种方式

因为Hutool-http机制问题,请求页面返回结果是一次性解析为byte[]的,如果请求URL返回结果太大(比如文件下载),那内存会爆掉,因此针对文件下载HttpUtil单独做了封装。文件下载在面对大文件时采用流的方式读写,内存中只是保留一定量的缓存,然后分块写入硬盘,因此大文件情况下不会对内存有压力。比传统的Apache和HttpCLient便捷许多,能够大大提高客户端的编写效率。这里指的是forest,官网地址,只需要声明接口,就可以使用。使用JDK原生提供的net,无需其他jar包。......

2022-08-08 13:13:04 13000 1

原创 异步调用feign请求头丢失数据问题解决

代码】异步调用feign请求头丢失数据问题解决。

2022-08-04 17:46:12 1951

原创 MapStruct:工具使用

mapstruct工具使用

2022-06-16 00:30:03 1107

原创 重试机制:Guava Retrying与spring-retry

一、重试的使用场景在很多业务场景中,为了排除系统中的各种不稳定因素,以及逻辑上的错误,并最大概率保证获得预期的结果,重试机制都是必不可少的。尤其是调用远程服务,在高并发场景下,很可能因为服务器响应延迟或者网络原因,造成我们得不到想要的结果,或者根本得不到响应。这个时候,一个优雅的重试调用机制,可以让我们更大概率保证得到预期的响应。...

2022-05-17 21:56:18 1210

原创 ElasticSearch:基础笔记以及与springboo整合

一、创建索引,PUT向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/shopping

2021-12-31 09:24:21 828

原创 Docker:network命令学习

1、基础命令

2021-12-10 13:39:02 509

原创 jenkins打包部署cicd

一、安装前环境准备1、安装jdk环境1安装jdk的压缩包tar官网下载二进制压缩包,上传到linux环境jdk-8u311-linux-x64.tar.gz2解压文件tar -zxvf jdk-8u311-linux-x64.tar.gz 解压3配置环境变量vim /etc/profileexport JAVA_HOME=/usr/local/jdkexport JRE_HOME=JAVAHOME/jreexportCLASSPATH=.:JAVA_HOME/jreexport C.

2021-12-10 10:01:49 1027

原创 k8s:概念以及搭建高可用集群

一、k8s概念和架构二、从零搭建k8s集群1、基于客户端工具kubeadm2、基于二进制包安装k8s三、k8s核心概念1 、pod2 、Conttroller3、Service ,Ingress4、RABC5、Helm四、搭建集群监控平台系统五、从零搭建高可用k8s集群六、在集群环境部署项目...

2021-12-08 14:03:46 3997

原创 MySql高级:explain及索引优化

一、mysql安装linux版本rpm安装查看是否安装了myslrpm -qa | grep -i mysql一定要下载指定的64位,因为电脑是64位的否则会安装失败https://www.jb51.net/article/129294.htm 报错解决办法安装mysql服务端rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm 安装mysql客户端rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_6

2021-08-03 14:55:12 811

原创 mysql: 常用函数总结以及高级函数用法

rand() 随机select rand();

2021-07-09 16:43:09 3663

原创 java8:IntStream,LongStream,DoubleStream等操作

summaryStatistics主要用于统计整形数组中元素的最大值,最小值,平均值,个数,元素总和等等。下面是一个简单的例子: int[] intArray = {12,3,34,67,100,99}; /** 第一种构造intStream **/ IntStream intStream = IntStream.of(intArray); /** 第二种构造intStream **/ //IntStream intStream2 = In

2021-07-08 17:36:38 625

原创 mybatis-plus: xml中大于小于等操作,ognl表达式test

第一种方法:用了转义字符把>和<替换掉,然后就没有问题了。第二种方法<![CDATA[ ]]>因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析你的可以写成这个:mapper文件示例代码<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>动态sql中choose

2021-07-05 23:57:28 1893

原创 mysql:基础总结

一 常用命令C:\Windows\system32>net stop mysql0815MySQL0815 服务正在停止.MySQL0815 服务已成功停止。C:\Windows\system32>net start mysql0815MySQL0815 服务正在启动 .MySQL0815 服务已经启动成功。mysql -h localhost -P 3306 -u root -pmysql -h localhost -P 3306 -u root -prootmysql -u

2021-06-24 17:32:17 571 1

原创 FastJson 过滤/保留 NULL值问题,在远程调用过程传输中过滤了null值导致前端没有key

简单的数据好像可以这样解决Map<String, Object> map = JSONObject.parseObject(respJson, new TypeReference<Map<String, Object>>() {});这样可以转化为一个有null值的map,这样就不用考虑值为null的key被抹除的问题了(太坑了!)FastJson介绍fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为

2021-06-09 16:42:17 970

原创 常见异常:No converter for XXX with preset Content-Type ‘application/octet-stream

No converter for XXX with preset Content-Type ‘application/octet-stream;charset=UTF-8‘在导出excel中返回公共封装类BaseResposne数据报错没有转换器,项目中把返回值改了void其他原因是如下解决解决办法方法一:将FastJson更换为jackson-databind<dependency> <groupId>com.fasterxml.jackson.core</

2021-06-08 15:14:18 29668 2

原创 JDK1.8新特性值Optional

在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行一些防御式的检查,所以在代码中常常可见if(obj != null) 这样的判断。幸好在JDK1.8中,java为我们提供了一个Optional类,Optional类能让我们省掉繁琐的非空的判断。下面先说一下Optional中为我们提供的方法下面我们写几个例子来具体看一下每个方法的作用:of//创建一个值为张三的String类型的OptionalOptional<String&

2021-06-08 14:57:14 103

原创 java格式化数字 NumberFormat及DecimalFormat

格式化金额DecimalFormatDecimalFormat format = new DecimalFormat("###,###.###");介绍如果你对java源码比较了解。你会发现java对文字,数字的格式化,是有一个公共的父类的Format。NumberFormat和DecimalFormat都是它的子类关于数字的。DateFormat和SimpleDateFormat也是它的子类关于文字的。首先,要特别注意的是 NumberFormat和DecimalFormat是线程不安全的。

2021-06-08 10:06:29 281

原创 Mybatis-plus:update updateById

一、根据id更新User user = new User();user.setUserId(1);user.setAge(29);user.updateById(); orInteger rows = userMapper.updateById(user);二、条件构造器作为参数进行更新UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();updateWrapper.eq("name","shi

2021-05-26 10:29:37 8601 2

原创 CompletableFuture: 异步编排

一、CompletableFuture1 异步编排,可以编配任务执行,与vue的promise类似。futrue可以获取异步任务的结果1 public static CompletableFuture<Void> runAsync(Runnable runnable) { return asyncRunStage(asyncPool, runnable); } 2 public static CompletableFuture<Void&gt

2021-04-27 16:21:25 240

原创 forest:Java HTTP 客户端框架

参考官网文档齐全,各种高级特性等用法https://gitee.com/dromara/forest/blob/master/README.mdhttp://forest.dtflyx.com/一、简介什么是 Forest?#Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求。为什么使用 Fo

2021-04-25 23:05:14 2100

原创 HarmonyOS Codelab挑战赛记录

下载DevEco Studio启动选择中国后下载SDK,默认在user目录下载Codelab起步应用获取Codelab起步应用ComponentCodelab,可从gitee源码或github源码下载打开HUAWEI DevEco Studio,点击File > Open选择步骤1中下载的ComponentCodelab点击Build > Build App(s)/Hap(s)>Build Debug Hap(s)构建hap包点击Run> Run ‘entry’运行ha

2021-04-25 00:33:23 196

原创 java基础

一、排序1 冒泡排序 /** * 冒泡排序:升序 */ @Test public void test06() { int[] arr = new int[]{-93,2,-87,23,11,107,-23}; for (int i = 0; i <arr.length-1 ; i++) { for (int j = 0; j < arr.length-1-i; j++) {

2020-09-21 18:01:18 434

原创 java8:接口新特性(除了常量和抽象方法外),默认方法和静态方法

一、原则多个默认方法情况使用 Java8 开发应用程序是,子类实现多个接口时,对于接口默认方法定义可能会出现多个默认方法,并且接口默认方法可能会出现同名情况,此时对于子类在实现或者调用时通常遵循三条原则:1、类中的方法优先级最高 2、如果第一条无法进行判断,那么子接口的优先级更高:函数签名相同时,优先选择拥有最具体实现的默认方法的接口,即如果B继承了A,那么B就比A更加具体 3、如果还是无法判断,继承了多个接口的类必须通过显示覆盖和调用期望的方法,显示地选择使用哪一个默认方法的实现二.

2020-09-08 14:14:10 612

原创 Exception:异常的产生和处理

异常:对于这些错误,一般有两种解决方法,一是遇到错误就终止程序运行,另外一种就是由程序员编写程序时考虑到错误的检测,错误消息提示及错误处理。捕获错误最理想的是编译期间,但是有的错误只有在运行时才会发生,比如:除以0,数组下标越界,等。分类:编译器异常和运行时异常异常处理模型:抓抛过程一:“抛” ,程序在正常执行过程中,一旦抛出异常,就会在代码异常处生成一个对应异常类,并将此对象抛出。 一旦抛出对象后,后面的代码就不执行 关于异常对象的产生:1 系统 自动生成的...

2020-09-08 14:14:00 635

原创 Activity:工作流引擎

1

2020-09-04 14:42:16 1686

原创 类初始化和实例初始化

一、类初始化过程1 一个类要创建实例需要先加载并初始化该类 main方法所在的类需要优先加载和初始化2 一个子类要初始化需要先初始化父类3 一个类初始化就是执行clinit()方法clinit方法由静态类变量显示赋值代码和静态代码块组成,声明不属于,只有显示赋值才算。 类变量显示赋值代码和静态代码块从上到下顺序执行 clinit方法只执行一次二、实例初始化1 实例初始化执行的事init方法init方法可能重载有多个,有几个构造器就有几个init方法 init由非静态实例..

2020-09-02 09:38:01 186

原创 内部类和静态内部类的调用方式

一、静态内部类的创建需要依赖外部类Out.Ind j=new Out.Ind();二、非静态内部类Outside in=new Outside();//在通过外部类对象创建一个内部类对象Outside.Indoor oi =in.newIndoor();

2020-08-27 11:01:50 4818 2

原创 泛型:继承和通配符

泛型的参数类型可以用在类,接口和方法创建中分别称为:泛型类,泛型接口和泛型方法。ArrayList<E>:整个称为泛型类型,E表示泛型变量或泛型参数ArralyList<Integer>:整个称为参数化类型,Integer称为类型参数的实例或者实际类型参数一、泛型类如果子类继承带泛型的父类时,指明了泛型类型,则new子类的时就不需要带<>指明类型了。如果子类在继承带泛型的父类时,没有指明泛型类型或者部分指明泛型,那么可以沿用泛型。如下public c...

2020-08-20 23:58:35 1029

原创 NIO:基本操作和学习

NIO的核心:缓冲区,通道,选择器一、缓冲区 Buffer :存储数据1 基本概念: 1 position :当前操作数据的位置,指针位置 2 limit:缓冲区中可以操作数据的大小,即limit后面的数据不能操作 3 capacity:缓冲区的存储大小2 直接缓冲区和非直接缓冲区 非直接缓冲区(allocate())方法分配的缓冲区,将缓冲区直接建立在jvm上面 直接缓冲区:allocateDirect()方法分配的缓冲区,将缓冲区直接建立在...

2020-08-10 15:11:16 284

原创 JPA:双向多对多

@JoinColumn(name = "address_id",referencedColumnName="ref_id") 默认情况下,关联的实体的主键一般是用来做外键的。但如果此时不想主键作为外键,则需要设置referencedColumnName属性。属性referencedColumnName标注的是所关联表中的字段名,若不指定则使用的所关联表的主键字段名作为外键。...

2020-08-03 11:07:22 139

spring笔记.txt

学习spring的笔记记录:从头到尾都是每一步的分析,可以在不同的博客中获取到,这里只是总结性的文档,相当于概念,落地的实现在各个技术博客中可以学习。其他笔记也可以上传中。

2020-03-16

空空如也

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

TA关注的人

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