自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 问答 (1)
  • 收藏
  • 关注

原创 Okhttp基础用法介绍

OKHttp是处理网络请求的开源框架,Andorid当前最火热的网络框架,Retrofit的底层也是OKHttp,用于替换和(API23 6.0已经移除)。概况起来说OKHttp是一款优秀HTTP,它支持GET和POST请求,支持Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟的问题。OKHttp的优点:1.支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。2.如果。

2023-09-07 08:01:56 449

原创 feign实现动态请求

在日常基于SpringBoot开发微服务系统中很多远程调用很少再去使用apacheHttpClient而是去使用OpenFeign。开发的微服务不可能只去调用一个服务,可能涉及的模块比较多,可能是自己内部系统其他模块,也可能是调用第三方的服务。但开发过程中不可能每次都去创建接口,为解决这个问题?我们可以用两种方式去实现该功能。

2023-09-03 18:05:39 310

原创 Mybatis-Plus在Oracle中LambdaUpdateWrapper无法更新字段为null值,报错无效的列类型:1111

使用mybatis-plus 3.5.9版本中LambdaUpdateWrapper set(R column, Object value),当value为null时无法更新。

2023-04-18 11:27:09 3455

原创 SpringBoot多数据源导致Invalid bound statement (not found)问题

问题描述:由于项目中需要使用多个数据源,在集成mybatis-plus是Mapper生成的代理类存在,但是调用BaseMapper中如selectById()方法报错如下:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题分析:这个问题是由于MybatisAutoConfiguration自动装载了Mapper,需要手动去装载Mapper启动类排除MybatisAutoConfigu

2022-04-26 15:16:16 5580 12

原创 k8s节点应用服务ftp accept timed out

问题描述:应用部署在k8s容器中,有ftp下载功能时报“accept timed out”如下所示2022-04-14 20:19:10.392 [pool-6-thread-3] INFO [10.244.114.7] *****.ftp.FTPClientAdapter - [,] - Connect to server 172.16.0.44, reply code is 2202022-04-14 20:19:10.394 [pool-6-thread-3] INFO [10.24

2022-04-22 09:08:10 558

原创 Mock工具类静态方法出现registeration must be deregist问题

Junit mock静态方法时To create a new mock, the existing static mock registration must be deregist。主要由于UT多个测试用例时,没有关闭资源导致后续用例无法测试使用`try-with-resources`可以解决该问题。try (MockedStatic<HttpClientUtils> mockedStatic = mockStatic(HttpClientUtils.class)) {

2022-03-10 10:29:59 6340

原创 Redisson源码研究

主要分析关键代码再往下看脚本命令保证了对操作的原子性=若,则自动超时过期若,则是的看门狗机制,后端定时任务每隔看下缓存是否过期,若存在自动设置TTL为主要这个时间是多少我们再细看下源码定义了也就是上述说的每隔10s触发一次, ,自动续期30s

2024-03-29 16:01:53 253

原创 alibaba nacos discovery bootstrap.yml未能加载导致Could not resolve placeholder ‘xxx‘ in value ${xxx}

SpringBoot 2.4版本之后 SpringCloud 2020 需要引入该依赖,才能读取到bootstrap文件。按理说引入nacos discovery不应该出现这个问题。

2024-03-28 17:46:05 234

原创 JetCache-阿里缓存框架

源码地址。

2024-03-28 08:37:10 305

原创 使用Collectors.toMap()报NullPointerException

分析Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v1)按照我们正常思维逻辑这不应该会出现这个问题,想当然理解成。这边可以看出key,value都可以为空。不能为空,再看下我们使用的。记录下最近工作中在使用。

2024-01-02 10:59:46 470

原创 设计模式之享元模式

享元模式(Flyweight Pattern)是池技术的重要实现方式,其定义如下:Use sharing to support large numbers of fine-grained objects efficiently.(使用共享对象可有效地支持大量的细粒度的对象。享元模式的定义为我们提出了两个要求:细粒度的对象和共享对象。我们知道分配太多的对象到应用程序中将有损程序的性能,同时还容易造成内存溢出,那怎么避免呢?就是享元模式提到的共享技术。我们先来了解一下对象的内部状态和外部状态。

2024-01-01 19:33:41 773

原创 设计模式之组合模式

组合模式(Composite Pattern)也叫合成模式,有时又叫做部分-整体模式(Part-Whole),主要是用来描述部分与整体的关系,其定义如下:我们先来说说组合模式的几个角色:定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性,比如我们例子中的getInfo就封装到了抽象类中。·Leaf叶子构件叶子对象,其下再也没有其他的分支,也就是遍历的最小单位。树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构。高层模块调用简单一棵树形机构中的所有节点都是Component,局部和整体对调

2024-01-01 19:22:02 1212 1

原创 设计模式之门面模式

门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式,其定义如下:Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use.(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

2023-12-31 16:16:44 1091

原创 设计模式之适配器模式

适配器模式(Adapter Pattern)的定义如下:Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

2023-12-31 16:15:02 1150

原创 设计模式之适配器模式

适配器模式(Adapter Pattern)的定义如下:Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

2023-12-31 16:02:38 1565

原创 设计模式之桥接模式

桥接模式(Bridge Pattern),是一个比较简单的模式,其定义如下:Decouple an abstraction from its implementation so that the two can vary independently.(将抽象和实现解耦,使得两者可以独立地变化。桥接模式4个角色Abstraction 抽象化角色它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。

2023-12-30 18:58:21 955

原创 设计模式之装饰器模式

装饰模式(Decorator Pattern)是一种比较常见的模式,其定义如下:Attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alternative to subclassing for extending functionality.(动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。

2023-12-30 18:37:04 1171

原创 设计模式之代理模式

代理模式文章目录代理模式定义优点使用场景模式扩展静态代理动态代理示例代码地址定义代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)代理模式也叫做委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式,而且

2023-12-28 10:04:28 740

原创 设计模式之原型模式

原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多,其定义如下:Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2023-12-27 08:07:31 1189

原创 设计模式之建造者模式

建造者模式()也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2023-12-24 15:27:10 411

原创 设计模式之抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。

2023-12-24 11:43:37 711

原创 设计模式之工厂方法模式

工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。其定义为:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

2023-12-24 11:31:38 652

原创 设计模式之单例模式

Singleton类称为单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行实例化的(在Singleton中自己使用全局唯一处理资源访问冲突。

2023-12-23 20:02:00 359

原创 软件设计原则

还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。这有助于降低类之间的耦合度,提高代码的可读性和可维护性。据库类型,只需创建一个新的子类,实现 Database 基类中定义的抽象方法即可。我们综合两者的描述,将这条原则用中文描述出来,是这样的:子类对象(object。每个模块只和自己的朋友“说话”(talk),不和陌生人“说话”(talk)。用来指导继承关系中子类该如何设计的,子类的设计要保证在替换父类的时候,不改。

2023-12-22 15:50:27 769

原创 如何写好代码

代码要有以下特点 可读性、可扩展性、可复用性、可维护性、低耦合、 高内聚和遵循设计原则。

2023-12-22 09:00:15 356

原创 spring-validation实现分组校验

JSR 303中提出了Bean Validation,表示JavaBean的校验,Hibernate Validation是其具体实现,并对其进行了一些扩展,添加了一些实用的自定义校验注解。​ Spring中集成了这些内容,你可以在Spring中以原生的手段来使用校验功能,当然Spring也对其进行了一点简单的扩展,以便其更适用于Java web的开发。比如我很多时候新增和修改的DTO只是存在主键或者其他的一些少量字段差异而已,但是自己又不想去CV。首先swagger可以使用来忽略api文档的显示。

2023-12-21 11:01:46 477

原创 java后端开发如何提升代码质量

写了很多年的代码了,突然有新人会问你这个问题,如何提升代码质量?这也不是一下子就能说得明白,或者能立马上手。关键还是在于多读多写,熟能生巧,实话,实话,实话!接口,该接口由一个返回为 void 的 close 组成。Java 类库和第三方类库中的。语句时,所有这些问题一下子都得到了解决。如果你编写的类表示必须关闭的资源,那么这个类也应。许多类和接口现在都实现或继承了。当 Java 7 引入了。

2023-12-20 15:06:41 306

原创 nginx upstream 6种负载均衡策略介绍

upstream。

2023-12-19 14:59:55 542

原创 Springboot日常开发使用策略、工厂模式

以发送短信为例三大运营商,我们可以定义为枚举或者常量,个人喜欢使用枚举,看个人喜好枚举类定义接口/*** 短信类型* @return 短信枚举/*** 发送短信* @param sms 短信内容三种运营商发送代码实现类移动@Service@Slf4j@Override@Override联通@Service@Slf4j@Override@Override电信@Service@Slf4j@Override@Override初始化Bean。

2023-12-19 10:07:10 1201

原创 Arrays.asList添加元素报java.lang.UnsupportedOperationException

由此可以看出asList其实就是就是一个定长数组且不能被修改,类似。3.使用Arrays.stream()

2023-12-18 17:21:02 524

原创 feign反序列化报错

由于最近看了一些effective java的数据,使用lomok的注解。由上面错误信息可以看出ErrorCode缺少默认无参构造函数导致。编译上述代码后,class文件中无默认构造器,从而导致无法反序列化。2.不使用Builder装饰器方式,使用链式模式。导致了fegin服务之间调用报反序列化错误。1.添加无参以及有参构造注解。那什么原因导致了该问题?

2023-12-18 16:26:36 517

原创 基于Tess4j图片OCR文字识别

在平时刷帖无意中发现一篇可以基于tess4j识别图片中文字,自己也尝试做了,但准确率还需要训练模型。1. maven添加依赖。2.配置tess4j。

2023-12-16 21:24:51 378

原创 SpringBoot中ElasticSearch动态创建索引

在我们在微服务中使用ElasticSearch,如果创建es索引,一般都会使用RestHighLeveClient或者ElasticSearchTemplate去创建索引。如果你的elasticsearch是7以前不用加@,7之后必须添加@才能识别动态的。现在Elasticsearch的@Document支持spel表达式。上述的bean为根据日期生成的索引提供者。2.document对象。下面话不多少直接上代码。

2023-12-16 21:12:46 813

原创 ip2region获取ip归属地

ip2region是一个基于IP地址的定位库,它可以将IP地址转换为国家、省份、城市、区域、运营商等信息。它的数据源来源于纯真IP库和GeoLite2数据库,数据准确性高,更新频率也比较快。ip2region支持多语种编程语言,包括JavaPHPPythonC等,可以方便地集成到各种应用中。它的使用方法也非常简单,只需要将IP地址传入相应的函数即可获取对应的信息。ip2region在网站访问统计、广告投放、反欺诈等领域有这广泛的应用。

2023-12-15 20:29:24 391

原创 easy_trans数据翻译

easy-trans

2023-12-15 12:55:16 980

原创 Spring事件监听器

从设计模式角度来看,事件监听器类似观察者模式,数据发布事件源,数据接收Listener,事件对象。

2023-12-15 09:06:56 310

原创 nlpcron根据中文描述翻译cron表达式

nlpcron根据中文描述翻译cron表达式。

2023-12-14 20:17:45 374

原创 Springboot实现指定字段脱敏

序列化自定义自定义注解类实例类上述代码即为核心代码,具体的代码实现请移步至

2023-09-09 19:41:28 95

原创 手写SpringBoot Starter 配置文件在yml无智能提示

application.yml无任何提示信息。

2023-05-08 11:32:16 192

原创 elasticjob由于zookeeper版本导致服务异常问题

zookeeper版本导致elasticjob服务启动异常

2023-01-17 08:45:31 1476

空空如也

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

TA关注的人

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