自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文搞懂Mysql回表,如何解决回表

在 MySQL 中,回表是指当使用非聚集索引(Secondary Index)查询数据时,MySQL 首先使用索引查找到满足条件的主键值,然后通过主键值到聚集索引(Primary Index)中查找对应的行记录的过程。因为非聚集索引中只包含了部分的列数据,而聚集索引中包含了所有的列数据,所以需要通过回表来获取未包含在非聚集索引中的列数据。聚集索引:一张表只能有一个,主键对应的字段。该表中的 id 字段是聚集索引,而索引idx_name_age 是name和age字段的复合索引(非聚集索引)。

2023-12-14 16:14:19 695

原创 Java判断对象列表中对象某属性是否都相同

【代码】Java判断对象列表中对象某属性是否都相同。

2023-07-04 10:08:38 1283

原创 java比较相同/不同对象中的指定字段是否相同

【代码】java比较相同/不同对象中的指定字段是否相同。

2023-06-20 14:23:36 745

原创 Java快速比较同一个类的不同实例字段值的异同

类A定义了很多个属性。实例化出了A的两个对象B和C,并且B与C中的字段值有些相同有些不同。比较出B和C哪些字段值相同哪些不同。例如,有业务需求要记录某一个表单每次修改的操作记录,详细到每个字段的值有什么改变。

2023-05-31 20:14:07 608

原创 Java实现多线程有几种方式(满分回答)

Java实现多线程有几种方式

2023-02-22 12:03:06 5528

原创 BigDecimal使用注意避坑

BigDecimal使用避坑

2023-02-19 16:23:57 908

原创 阿里巴巴《Java开发手册(黄山版)》阅读笔记

前言书籍开源地址:https://github.com/alibaba/p3c本文主要节选一些部分开发中一些自己没有注意到的点,会选择性的舍去一些已经养成的好的编码习惯及一些阿里企业特性比较强的规范。一、编码风格(一)命名风格(二)常量定义1.【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。反例:// 开发者 A 定义了缓存的 key。String key = "Id#taobao_" + tradeId;cache.put(key, value);// 开发

2022-03-12 10:24:16 861 1

原创 Idea设置生成toString()方法带父类toString()方法

Alt + Insert选择toString()点击Settings新建一个模板模板内容public java.lang.String toString(){final java.lang.StringBuilder sb = new java.lang.StringBuilder("$classname").append('[') #if ( $class.hasSuper ) .append(super.toString()) #end#set ($i =.

2022-03-10 17:13:54 2156

原创 Java中快速对列表排序去重、排序

一、集合泛型为基本包装类初始物料数据List<String> list = new ArrayList<>();list.add("all");list.add("dfg");list.add("bnm");list.add("cff");list.add("uii");list.add("uii");1. 转Set作用: 去重System.out.println(list);Set<String> set = new HashSet<&g

2022-03-10 17:05:59 2134

原创 Springboot项目中获取当前服务端口号

1. 启动时获取@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })public class AdminApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(AdminApplication.class); Environment

2022-03-09 13:33:36 6598 1

原创 docker启动nacos 单机实例

文章目录1. docker 启动命令2. 官方初始化sql文件1. docker 启动命令快速启动docker run --name nacos3-standalone -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest使用mysqldocker run -d \ -e PREFER_HOST_MODE=hostname \ -e MODE=standalone \ -e SPRING_DATASOURCE_PL

2022-02-22 21:30:46 2006 1

原创 面试题:在浏览器中输入url地址到显示页面的过程?

总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束

2022-02-20 23:14:33 612

原创 Spring Cloud GateWay学习(1)--入门

文章目录一、前言1. 版本信息2. 学习参考资料二、Spring Cloud Gateway1. 思考为什么要使用网关2. Spring Cloud Gateway概述2.1 简述2.2 架构图2.3 核心术语一、前言1. 版本信息Spring Cloud Gateway–3.1.02. 学习参考资料官方文档:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/二、Spring Cloud

2022-02-13 13:23:18 450

原创 八个前端开发必备的面试刷题网站

八个笔试&面试仓库Front-end Developer Interview Questions网址:https://h5bp.org/Front-end-Developer-Interview-Questions/CS-Interview-knowledge-Map网址:https://github.com/InterviewMap/CS-Interview-Knowledge-MapDaily-Question网址:https://github.com/shfshanyu

2022-02-09 23:05:14 4783 2

原创 坑:mybatis-plus字段名为关键字的错误

报错截图:很明显condition是mysql的关键字,查询和插入都会有问题。在数据表对应的实体类中的字段上需要使用@TableField注解标记。/** * 项目研究基础-具备条件情况 */@TableField("`condition`")private String condition;以后取字段名的时候,尽量避开数据库的关键字!...

2022-02-08 10:04:59 2226

原创 面试题--JVM面试总结

jre、jdk、jvm之间的关系JDK是Java程序员常用的开发包、目的就是用来编译和调试Java程序的。JRE是指Java运行环境,也就是我们的写好的程序必须在JRE才能够运行。JVM是Java Virtual Machine(Java虚拟机)的缩写,是指负责将字节码解释成为特定的机器码进行运行,值得注意的是在运行过程中,Java源程序需要通过编译器编译为.class文件,否则JVM不认识。jvm组成结构我们先来研究一下jvm的组成结构都有哪些jvm结构图类加载子系统负责从文件系统或是网

2022-02-04 23:20:52 301

原创 面试题--设计模式相关

jdk源码中用到了哪些设计模式?(1)单例模式单例模式用于Runtime,Calendar和其他的一些类中。“饿汉式”是在不管你用的用不上,一开始就建立这个单例对象(2)工厂模式被用于各种不可变的类如Boolean,像Boolean.valueOf方法。(3)装饰模式装饰器模式被用于多个javaIO类(4)代理模式Jdk动态代理。(5)迭代器模式Java集合中的迭代器。工厂模式和简单工厂模式的区别1、简单工厂模式中包含判断什么对象的逻辑,而工厂方法模式则需要调用者判断要实例化什么

2022-02-03 23:05:48 488

原创 Mysql清理数据库中的重复脏数据

1. 删除全部重复的数据查询目标表中哪些数据重复了:Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(1)>1)删除:DELETE From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(1)>1)2. 删除重复数据,只要其中一条DELETE FROM 表 WHERE id Not In (S

2022-02-02 22:52:50 11152

原创 Springboot实现 其他属性条件 校验注解

文章目录1. 使用场景2. 技术实现2.1 实现思路2.2 代码实现2.2.1 引入依赖2.2.2 自定义校验注解2.2.3 校验工具类2.2.4 校验处理逻辑3. 使用示例1. 使用场景例如:当属性condition=1时,某某参数为必填;某某参数为必填且只能为某些值或不能为某些值。支持扩展场景:只允许填入某些值不允许填入某些值如果使用注解的属性是对象,可以控制是否对对象中的属性进行再校验2. 技术实现2.1 实现思路使用Hibernate Validator校验工具,自定义校

2022-01-29 17:01:38 1519

原创 SpringBoot项目自定义校验枚举注解

文章目录1. 使用场景2. 技术实现2.1 实现思路2.2 代码实现2.2.1 引入依赖2.2.2 自定义校验注解2.2.3 校验工具类2.2.4 校验处理逻辑3. 使用示例1. 使用场景某接口的入参某属性,只希望为系统中某枚举的中定义过的值。例如:用户类型枚举中定义 10-普通用户 20-管理员 30-游客 40-中级用户 50-高级用户希望某接口的入参 userType 只能填入这几种type支持扩展场景:只允许填入枚举中定义过的某些值不允许填入某些值2. 技术实现2.1

2022-01-29 16:15:45 3092

原创 Springboot项目使用smart-doc+Apifox 便捷生成管理接口文档

文章目录1. 前言2. 使用流程3. 使用示例1. 前言相信大家在Java开发中都用过不少接口文档工具,最常见的就是Swagger了。但它有一个不好的缺点就是,想要接口文档清晰和美观需要加入许多声明和注解,代码的侵入性很强。最近在维护一个老的项目,项目中没有用到Swagger,之前前后端的交互用的是Yapi,接口写好了,手动在Yapi上手写一遍文档,真的要吐血,于是决定寻找一款工具可以方便快捷的生成API文档。于是乎百度谷歌各类工具,以下是我尝试过的工具或者平台:可以说市面上常用的都试过了一遍,最后

2022-01-19 19:47:14 7712 3

原创 Mybatis Plus构造查询一周内、一月内、一年内的条件构造器

话不多说,直接上代码!构造条件代码private <T extends BaseEntity> LambdaQueryWrapper<T> buildQueryWrapper(NewBigDataBaseDTO dto){ Integer timeType = dto.getTimeType(); Date currentDate = new Date(); LambdaQueryWrapper<T> lqw = W.

2022-01-17 14:09:07 6811 2

原创 Sentinel自定义返回和实现区分来源

文章目录1. 自定义错误返回2. 实现区分来源1. 自定义错误返回因为流控和降级页面报的异常都是相同的,所以可以优化一下。使用官方的接口BlockExceptionHandler(2.2.7.RELEASE)、UrlBlockHandler(0.9.0.RELEASE)定义处理类:​@Componentpublic class MyUrlBlockHandler implements BlockExceptionHandler { @Override public voi

2022-01-14 07:30:17 678

原创 最新Windows环境下搭建RocketMQ及其控制台环境

文章目录1. 搭建RocketMQ1.1 下载RocketMQ1.2 配置RocketMQ环境变量1.3 启动NAMESERVER1.4 启动BROKER2. 安装官方控制台扩展1. 搭建RocketMQ1.1 下载RocketMQ官网下载地址:https://rocketmq.apache.org/release_notes选择合适的版本下载Binary下载之后解压:1.2 配置RocketMQ环境变量系统变量名: ROCKETMQ_HOME系统变量值: D:\Develop\Ro

2022-01-13 10:34:20 1662 1

原创 更新容器内jenkins版本

如此丝滑简单!自己瞎搞半天!# 进入容器docker exec -it -u root jenkins容器名 bash# 进入war包的存放路径cd /usr/share/jenkins# 备份旧包,新包代替mv jenkins.war jenkins.war-bakwget http://mirrors.jenkins.io/war/latest/jenkins.war# 退出容器exit# 重启容器docker restart jenkins容器名...

2022-01-12 19:11:32 354

原创 Sentinel与控制台通信原理剖析及控制台相关配置

文章目录1. Sentinel与控制台通信原理剖析2. 控制台相关配置项1. Sentinel与控制台通信原理剖析控制台是如何获取到微服务的监控信息的?用控制台配置规则时,控制台是如何将规则发送到各个微服务的呢?微服务注册到Sentinel控制台后,会定时发送心跳!(其实就是Sentinel实现了服务发现机制)注册/心跳发送 实现源码com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender(其实就是个定时

2022-01-11 15:14:37 319

原创 服务容错Sentinel的降级规则和热点规则探究

文章目录1. 降级规则1.1 降级策略-RT1.2 降级策略-异常比例1.3 降级策略-异常数2. 热点规则1. 降级规则官方文档描述:https://github.com/alibaba/Sentinel/wiki/降级相关源码:com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule#passCheckSentinel的断路器没有半开状态相关Issue :https://github.com/alibaba/Sentinel/pull

2022-01-11 00:06:01 404 1

原创 服务容错Sentinel的流控规则探究

文章目录1. 流控模式--直接2. 流控模式--关联3. 流控模式--链路4. 流控效果--快速失败5. 流控效果--Warm Up6. 流控效果--排队等待1. 流控模式–直接控制台设置流控再次访问,QPS超过1就报异常2. 流控模式–关联当关联的资源达到阈值,就限流自己场景:内容中心有两个API,一个是查询share表,另一个是修改share表的数据,这是高并发的应用,所以查询接口的调用速度过快,就会影响修改接口的性能,相反也一样。这时可以根据业务需求来衡量优先读还是优先修改!如何希

2022-01-09 17:41:27 301

原创 windows环境搭建nacos服务并注册服务

文章目录1. Nacos下载和运行2. 测试项目注册到naocs1. Nacos下载和运行下载地址:https://github.com/alibaba/nacos/releasesset MODE="standalone"启动成功登陆页面2. 测试项目注册到naocs测试项目添加依赖:<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId

2022-01-07 19:45:04 573

原创 java对接云之家群聊机器人

文档地址:https://www.yunzhijia.com/opendocs/doc.html?#/api/im/im-robot我这边的需求是使用他们的默认样式的应用类消息类似这样的。其实也没有什么难度,就是json格式对上就行了。对象封装:/** * 对接云之家请求参数 * * @author Gangbb * @date 2022/1/4 **/@Datapublic class RobotDto { private String content; priv

2022-01-07 00:07:20 479

原创 坑:SpringBoot Request method ‘DELETE ‘/ ‘POST‘ not supported (自己坑自己)

先看看报错的信息:(用的swagger增强Knife4j接口文档调试工具)控制台也就只报:Request method ‘DELETE’ not supported排查了一堆,看到百度说,配置:# 启用hiddenMethod过滤器spring.mvc.hiddenmethod.filter.enabled=true然而并没有什么用。后面改用PostMan又测了一遍:(后台终于有报错信息了)哦!…尴尬了@DeleteMapping("/{deptIds}")public ApiR

2022-01-04 07:26:40 3479 2

原创 jsckson全局配置null转““或[]返回

实现了使用jsckson序列化工具,全局当字符串返回值为null时,处理成返回" ";当集合返回值null时,处理成返回[]。下面是Jackson所有的配置实践,不单是上述内容话不多说,直接上代码!文章目录1. 自定义处理集合为null的JsonSerializer2. 自定义BeanSerializerModifier3. Jackson主配置类4. Yaml文件配置1. 自定义处理集合为null的JsonSerializerimport com.fasterxml.jackson.core.

2022-01-03 07:14:59 429

原创 fastjson全局配置超详解

话不多说,直接看代码!import cn.hutool.core.util.ReflectUtil;import com.alibaba.fastjson.serializer.PropertyPreFilter;import com.alibaba.fastjson.serializer.SerializeConfig;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.se.

2022-01-03 07:02:49 7054 1

原创 Idea超实用插件推荐

文章目录1. CodeGlance2.GenerateAllSetter3. Grep Console4. JRebel5. Lombok6. MapStruct Support7. Maven Helper8. Vue.js9.Statistic10.Alibaba Java Coding Guidelines11. Translation12. Key Promoter X13. Rainbow Brackets14. Tabnine Al Code15. GsonFormatPlus16.Swagge

2021-12-26 22:35:35 1773

原创 Myatis中MappedStatement对象属性详解

MappedStatement:描述< select|update|insert|delete >或者@Select、@Update等注解配置的SQL信息所有属性源码:private String resource;private Configuration configuration;private String id;private Integer fetchSize;private Integer timeout;private StatementType statement

2021-12-25 20:09:17 1411

原创 必看Redis十三条性能优化使用建议

文章目录前 言1. 避免慢查询命令2. 生产环境禁用keys命令3. keys需要设置过期时间4. 禁止批量的给keys设置相同的过期时间5. 谨慎选择数据结构6. 检查持久化策略7. 采用高速的固态硬盘作为日志写入设备8. 使用物理机而非虚拟机9. 增加机器内存或者使用Redis集群10. 使用 Pipeline 批量操作数据11. 客户端使用优化12. 使用分布式架构来增加读写速度13. 避免内存碎片前 言Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻谨记优

2021-12-24 23:39:30 461

原创 坑:阿里云服务器 SpringBoot项目启动后,无法通过IP地址访问

如图:服务器内网能访问了。通过ip访问不了。看了网上一堆:防火墙端口开启对应端口服务器放行端口修改配置文件application.properties中 server.address = 0.0.0.0服务器httpd服务异常1、查看httpd服务 chkconfig --list httpd提示服务不存在2、安装httpd 服务 yum --disableexcludes=all install -y httpd3、启动httpd服务 service httpd start

2021-12-22 08:36:19 2499 1

原创 坑:Redisexception; nested exception isio.lettuce.core.RedisException:java.io.IOException

今天启动项目的时候,访问首页报了排查了一番发现是开启了protected-mode模式。redis3.2版本后新增protected-mode配置,默认是yes,即开启。设置外部网络连接redis服务,设置方式如下:1、关闭protected-mode模式,此时外部网络可以直接访问2、开启protected-mode保护模式,需配置bind ip或者设置访问密码找到服务器的redis配置文件vim redis.conf修改 protected-mode yes 改为:protecte

2021-12-22 08:26:56 10941

原创 mapstruct坑:Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.

项目中如果使用了mapstruct框架,在使用Idea新版本后,启动会报错!解决方案:方案一Idea设置:Setting -->Build,Execution,Deployment -->Compiler -->User-local build process VM options (overrides Shared options):加上参数:-Djps.track.ap.dependencies=false方案二mapstruct框架引入版本升至1.4.1.Fina

2021-12-18 11:41:49 9328

原创 设计模式学习笔记--访问者模式(详细笔记)

文章目录1. 概述2. 使用实例1. 概述使用背景:主要将数据结构与数据操作分离。稳定的数据结构和易变的操作耦合问题。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。在被访问的类里面加一个对外提供接待访问者的接口。定义:《大话设计模式》访问者模式( Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。菜鸟教程在访问者模式(Visi

2021-12-18 09:34:51 509

空空如也

空空如也

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

TA关注的人

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