自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 消息中间件 Kafka

自定义分区器之后,kafka原生的就失效了,会按照自定义的进行;1.实现接口,重写方法,创建分区器类/*** 自定义 kafka 分区器/*** 重写分区策略 (根据自己需要做逻辑判断)** @param topic 主题* @param keyBytes 序列化之后的 key* @param valueBytes 序列化之后的 value* @return//获取value String strValue = value . toString();} else {...

2022-08-02 22:10:05 663

原创 springBoot集成-注解参数验证@Validated

为什么使用:@Validation是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以轻松优雅的完成对数据的约束检验。引入jar依赖:用处\用法:用于在controller接口中参数检验,(可以在接口处声明错误,并返回给前台提示),这里使用过滤器捕捉,隐式提醒。代码更简洁1.定义过滤拦截器:三个拦截,分别拦截不同的接口请求方式①路径中参数②表单中参数③post请求参数2.在实体类上添加注解属性上加上对应的注解,即可完成参数校验注解举例:3.controll

2022-06-29 18:01:27 766

原创 全链路追踪TransmittableThreadLocal-接口随处可获得需要的信息

需要在程序任意位置获取到想要的信息(一般是用户Id)步骤一:登陆时将信息存在一个实体内,并存入redis缓存例如:@Datapublic class ThirdSession implements Serializable { /** * 所属租户 */ private String tenantId; /** * 微信用户ID */ private String wxUserId; /** * 配置项ID */

2022-05-17 17:25:48 591

原创 spring boot整合Quarzt框架实现定时任务

1.导入依赖所需maven依赖如下<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId></dependency><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId&

2021-07-11 00:40:30 945

原创 XXL-定时框架

XXL-定时框架。

2024-09-24 17:26:58 668

原创 百度文字识别OCR

1.注册账号,获取必要参数官方文档地址2.单例模式初始化Java客户端AipOcr/** * @author byChen * @date 2021/9/29 */public class SingAipocr { /** * 将构造方法私有化,保证其他地方new不出来 */ private SingAipocr(){} /** * 在内部使用静态修饰,new一个该对象,该对象就是唯一单例(私有化方法在内部可以使用) */

2024-01-25 16:53:03 431

原创 Fegin远程调用-传递Reponse的情况解决

不同模块之间,如果需要远程调用下载表格的接口,需要使用reponse来将表格流进行远程传递,但是如果直接使用HttpServletResponse作为参数传递的话,会报类型转换异常或者其他异常情况,导致reponse无法传递。重点需要一个将Fegin的Reponse转换为普通HttpServletResponse的方法,在这里是。方法内引入的包都是java原生的或者Fegin的包。

2023-11-14 10:54:31 1024

原创 MySql判断表是否被锁定、如何解锁

在使用 MySQL 数据库时,我们可能会遇到数据库表被锁定的情况。当一张表被锁定时,其他用户无法对该表进行修改、删除或插入操作,这对于多人同时访问数据库的情况下会造成很大的影响。那么,如何对 MySQL 锁表进行解锁呢?总之,在面对 MySQL 锁表的情况时,我们需要先查看锁定表的状态,然后找到当前锁定该表的进程,并尝试杀掉这些进程。如果以上方法都无法解决问题,可以考虑重启 MySQL 服务。在特殊情况下,如果以上方法都无法解锁表格,可以尝试重启 MySQL 服务,这将强制解锁所有的表格。

2023-10-31 15:59:20 10539 1

原创 查询、定位、排除项目中jar包依赖

有时候同一个项目中因为不同maven依赖而引入了相同jar包的不同版本,这就会导致jar包冲突而产生异常,而具体想要定位产生冲突的jar包是哪个maven依赖引入的,这里推荐一个idea插件。查询出原因,定位到位置,接下来就需要进行排除了。首先我们需要根据具体情况决定保留哪个版本排除哪个版本(这里根据业务不同决定,不多说)。知道了每个maven的冲突原因,我们还需要定位到该依赖处于哪个地方哪一行。都引入了 poi-ooxml 的jar包,只是分别为不同的版本。排除的依赖的坐标,可以通过。

2023-10-27 10:33:45 2169

原创 更优雅的判空 - Optional类的使用

Optional 类是 Java 8 引入的一个特性。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException),使用它可以避免代码中出现过多的这样范式的代码,支持链式编程。引入:在项目中,经常会遇见需要取出一个处于很深的结构的实体中的某个值,比如如果想要成功无异常的取出需要的cityName的值,需要在访问每一个值之前对其进行判空,这就需要使用 if…{} 的结构,起码需要判断三次,嵌套三层 if…{} 会使得代码非常冗余。

2023-10-16 17:38:03 283

原创 SQL函数及高级用法

SQL函数大全,以及一些使用方法

2023-08-26 23:55:55 3145

原创 Typora图片云保存

Typora图片 云图片

2023-08-05 19:10:15 370

原创 JUC - 并发编程进阶

打开 Future 类的源码,使用快捷键 ALT+7 查看类中全部的方法为什么会出现这个类?解决什么痛点?当主线程忙着其他业务的时候,如果需要执行另外一个耗时的任务时,则可以使用该类,新开一个子线程去办耗时的任务,主线程依旧忙自己的业务,当主线程业务忙完之后,可以调用改类的方法去检查子线程是否已经完成,以及完成的结果是怎样的,如果子线程已经完成且任务的结果是成功,那么流程完成;如果结果是失败,那么可以进行相应的重试操作。**总结:**Future接口可以为主线程开一个分支任务,专门为主线程处理耗时和费力的复

2023-07-01 00:43:31 295

原创 Stream流技术的使用

输出。

2023-05-03 01:14:33 153

原创 自动化部署Jenkins

jenkins在开发中处于的位置1.Jenkins需要放在服务器上,跟测试项目在同一个地方2.服务器需要提前部署jdk环境,然后官网下载 Jenkins的安装war包,之后直接 Java -jar jenkins.war 进行启动,也可以手动指定端口号tips: 安装好jdk,还需要再运行命令,下载完整的jdk环境 : yum install -y java-devel启动命令:启动效果框出来的是文件存在地址,隐藏文件夹进入文件夹:访问 Jenkins启动的端口不管是什么,页面访问的路径都是 808

2022-11-26 22:19:55 2018

原创 ShardingSphere5

沙丁斯菲尔 - 分片秋读写分离原理,将数据库的读写操作分布在不同的节点上,写操作在主机上,读操作在从机上,主机执行完写操作后会报数据同步到从机上,完成数据同步读写分离的基本实现:读写分离会出现一个问题:读的时候可能会不能够及时的读取到最新的数据。因此引入 CAP理论在一个,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。在实际设计过程中,每个系统不可能只处理一种数据,而是包含

2022-10-27 23:04:55 4116 3

原创 Docker

仓库名、标签都是 none 的镜像,不知道是做什么用的,但是确实占用空间这种镜像建议删除可以发现,在远程仓库拉取镜像时,是一个文件一个文件的分步拉取,其实这每个“文件”,就是一层;也就是说,镜像其实是由不同的层组成的分层下载👆1.docker 修改,宿主机同步获得2.宿主机修改,docker也会同步获得3.docker容器停掉 stop,主机修改,docker容器重启后依旧能够同步最新数据。

2022-10-23 19:05:48 1755

原创 sentinel 初步学习+控制台使用

资源可以是很多类型,但是经常使用的是将某个接口或者某个方法设置为资源,我们这里设置方法为资源,因为需要使用注解跟原生两种方式,所以定义两个不同的方法:/*** 方法定义于 demoService 中");} /*** 原生流控写法 - 注解方法}/*** 原生流控写法 - 耦合方法** @returnString str = "访问被保护的资源了。。";}查看机器列表以及健康情况当您在机器列表中看到您的机器,就代表着您已经成功接入控制台;如果没有看到您的机器,请检查配置,并通过。

2022-09-04 21:07:46 3196

原创 springBoot指标监控 - Actuator

如何有其他的软件应用也实现了健康指标,在这里也会显示,比如redis。

2022-08-30 23:08:00 1746

原创 JUC - 并发编程

传统的项目使用线程举例:卖票业务代码如下:访问结果:2.修改,可重复锁 - ReentrantLockReentrantLock官方示例代码:代码修改为:访问结果,与之前传统写法一样:代码优化:代码过于臃肿,可以使用lamba表达式进行代码简洁如果不计算返回值的话,上面的是最简洁的,计算的话就下面这样。但是这样不适应内部逻辑很复杂的代码,因此看情况使用线程调用 .start() 方法后,线程进入就绪状态,并没有直接启动,而是等 cpu 来调用才会启用。查看源码枚举:引申知识点:

2022-08-17 11:33:32 435

原创 消息中间件-RocketMq

消费者订阅的topic的queue数量发生变化+消费者组中消费者的数量发生变化幂等是需要业务代码来辅助完成的,MQ只提供能够实现幂等的唯一性标识的设置api,以此来避免消息被业务重复处理。消息重复无法避免,但是可以避免业务重复处理消息。.........

2022-08-10 14:58:09 940

原创 redis使用-基本命令+进阶配置

123

2022-07-04 09:10:53 3609

原创 动态的为实体字段添加注解/注解属性

可以动态的给实体添加注解,比如:导出表格的时候,根据条件决定是否导出该字段的列等使用本例子将所有代码都放入工具类中,实际上有些不能实例化到内存中,只能作为一部分代码放在逻辑中,此种代码以再程序中标注;另一部分是可以持久化到内存,使用完工具类之后也可以继续保存注解或者属性;使用搭配在文末指出代码如下:package com.springcloud.utils;import org.apache.ibatis.javassist.ClassPool;import org.apache.ibatis

2022-06-29 22:52:54 9485 5

原创 Spring 内置事件监听-观察者模式

当某个业务完成后,需要做另外一些操作。如果写在代码中,一个一个去请求,虽然也能完成,但是这样代码耦合,遇见新增操作也需要找到代码进行修改。有一种更好的方式,那就是事件监听,事件监听也是设计模式中 发布-订阅模式、观察者模式的一种实现。可以将业务做完后,发布一个事件,将必须的参数通过事件一同发布出去。发布后所有订阅该事件的监听都会被触发并拿到传递的参数,可以在每个监听中分别进行不同的操作。比如减库存、清购物车等等。事件可以简单理解为,对中间参数的传递介质来使用。业务完成后,将各个监听器需要的参数通过有参构造方

2022-06-29 22:39:33 375

原创 Screw一键生成数据库文档

1.引入依赖<!-- screw 库,简洁好用的数据库表结构文档生成器 --><dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.5</version></dependency>2.使用编码形式生成文档/** * 数据库

2022-05-17 17:26:43 200

原创 百度语音合成speech

必要参数准备AppIdAPI KeySercret单例模式,启动时创建单例官方文档/** * @author byChen * @date 2021/9/30 */public class SingAipSpeech { /** * 将构造方法私有化,保证其他地方new不出来 */ private SingAipSpeech(){} /** * 在内部使用静态修饰,new一个该对象,该对象就是唯一单例(私有化方法在内部可以使用

2022-05-17 17:26:24 490

原创 企业微信会话存档功能

1.准备1.从企业微信官方文档下载demo官方文档地址1.工具类Financepackage com.tencent.wework;/** * @author byChen * @date 2022/1/26 *//* sdk返回数据typedef struct Slice_t { char* buf; int len;} Slice_t;typedef struct MediaData { char* outindexbuf; int out_l

2022-05-17 17:24:43 2405 9

原创 Excal导入

excal导入controller层/** * 线索导入 */@PostMapping("importLeads/{createId}")public YyptResponse outExcel(@RequestParam("file") MultipartFile[] file, @PathVariable("createId") Integer createId) { if (createId == null) { return YyptResponse.fail

2021-08-06 10:54:24 105

原创 三层目录建树

关键思想:1最终返回给前台的是一个实体类,该类应该有一个Children字段(实体类属性中具有,或者继承方法来获得,本例子用的是继承)用来接受它的子元素,子元素同样也是该类,也具有Children字段(层层套娃);2遍历数据库所有元素,将一级元素(父id等于0)直接添加到树中,(其实就是放在该类中),作为基础;3然后嵌套循环进行再次遍历数据库,进行判断,如果有A元素的父id等于另外一个B元素的id,就将A元素添加到B元素的Children字段中进行储存,也就是将A元素作为B元素的子级

2021-08-06 09:26:46 262

原创 redisTemplate

package com.example.demo.Utils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.web.bind.annotation.RestController;import java.util.Collection;import ja

2021-07-16 15:35:48 120

空空如也

空空如也

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

TA关注的人

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