自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring:动态数据源

AbstractRoutingDataSource 是 Spring 框架中的一个抽象类,它主要被用来实现动态数据源切换的功能。在多数据源的应用场景下,例如读写分离、数据分片、环境隔离等,AbstractRoutingDataSource 提供了一种灵活的方式来根据不同的条件选择不同的数据源AbstractRoutingDataSource 允许你在运行时根据业务需求动态地选择不同的数据源。例如,在读写分离的场景中,你可以根据请求类型(读或写)选择不同的数据库连接@Override。

2024-07-26 16:23:37 310

原创 Springboot:自定义过滤器

每天进步一点点!

2024-07-26 11:27:38 368

原创 Java:自定义监听

场景描述:当订单流转到某一个节点之后,我们需要通知A系统、B系统、C系统。且通知的内容不一致。通常我们会将这些逻辑都集成在一起,增加代码复杂度、降低可维护性。我们可以使用自定义监听对该场景进行设计改造。我们可以将待处理的订单记录到一个个队列中,然后有一个线程一直在扫描该队列,然后封装成事件,发布事件。当对应事件的监听器收到后,会立即进行处理。多个监听器也可以处理同一类事件,也就是针对一个订单,我们可以有不同的处理逻辑,这些都是一个个单独的存在。互不干扰。

2024-07-09 09:45:49 378

原创 本机搭建RabbitMQ

Exchange(交换机)作用:Exchange是消息的路由器。生产者将消息发送给exchange,而不是直接发送给队列。exchange根据预定义的规则(称为binding)来决定哪些消息应该路由到哪个队列类型:Exchange有多种类型,如direct(直接交换机)、fanout(广播交换机)、topic(主题交换机)和headers(基于消息头的交换机),每种类型的exchange有不同的路由策略配置:Exchange需要预先声明,指定其类型和任何其他相关配置Queue(队列)

2024-05-15 15:15:54 1211

原创 Java:内存模型

Java内存模型,规范了JVM如何提供按需禁用缓存和编译优化的方法通俗的讲,就是约定了按需禁用缓存和编译优化的关键字、方法等等。来讲两个例子,大家就知道说的是什么了,例如:修饰变量的关键字关键字。也就是说这些个Java的关键字,是为了禁用缓存和编译优化而生。新事物的出现并非偶然,带着解决问题的思路去思考。

2024-05-07 16:00:50 817 1

原创 BigDecimal:踩坑

JDK为我们提供了带精度的divide方法,当遇到这种除不尽的场景,可以很好的处理,综上,建议在用BigDecimal进行除法运算的时候,优先采用有精度控制的方法。终于找到源头了吧,就是在我们使用单个参数的divide方法时,默认给的就是7,如果除不尽,有这个限制。Java 中使用 BigDecimal 做除法运算的时候,值有可能是无限循环的小数,结果是无限循环的小数,就会抛出上面这个异常。是不是抛出来的异常跟我们堆栈里的一样,我们接着进入divide方法看看。接着进入divideAndRound方法。

2024-05-06 16:20:26 398

原创 算法:最长有效括号子串的长度

给定一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度输入:s = "(()"输出:2解释:最长有效括号子串是 "()"输入输出:4解释:最长有效括号子串是 "()()"每天进步一点点!

2024-04-30 16:20:54 438

原创 算法:找不同

给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。输入:s = "abcd"输出:e每天进步一点点!

2024-04-30 09:50:20 740

原创 算法:各位相加

给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数输入:38输出: 23 + 8 = 111 + 1 = 2。由于2是一位数,所以返回 2每天进步一点点!

2024-04-29 15:45:16 407

原创 算法:二叉树的所有路径

给定一个二叉树,返回所有从根节点到叶子节点的路径。输入:1/ \2 35输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3每天进步一点点!

2024-04-29 14:16:27 280

原创 算法:不同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数输入:n = 3输出:5根节点分别为1、2、3时,一共有五种情况,分别是1)根节点为1,先给节点2,再给节点32)根节点为1,先给节点3,再给节点23)根节点为2,分别给节点1和34)根节点为3,先给节点1,再给节点25)根节点为3,先给节点2,再给节点1输入:n = 1输出:1每天进步一点点!

2024-04-28 16:47:47 247

原创 Idea:阿里巴巴Java编码插件

此插件检测Java代码中的编码问题,并为您提供提示。阿里出品,必属精品!

2024-04-22 16:48:36 1953 1

原创 Idea:通义千问插件

阿里出品,必属精品!

2024-04-22 16:24:06 4575

原创 接口防刷:图形验证码

重置密码,会给用户手机号发送一个短信验证码,因为该接口是未登录就可以访问,所以存在防刷风险。还会遇到未申请重置密码的用户,收到了重置密码的短信。动动脑,能防老!

2024-04-12 15:02:44 352

原创 MySQL:DBA看主从延迟

每天进步一点点!

2024-03-28 15:44:49 504

原创 Springboot:Actuator监控

Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用查看哪些端点是开放的,通过get请求来访问自定义端点,可以实现我们想要的功能,比如对某一个、某几个请求做统计,我们通过metrics去访问这些细项。Actuator提供的各get接口,返回的数据都是JSON串,不太美观,有的返回的信息量很大,需要我们自己去筛选出来我们关心的常用指标。例如JVM的信息、线程的信息、内存的使用情况等等。

2024-03-26 11:41:30 982

原创 Lombok:@With造数据如此简单

允许你创建一个新的对象,该对象是当前对象的副本,但某些字段的值已被更改每天进步一点点!

2024-03-21 17:55:19 300

原创 Lombok:@Singular集合元素灵活添加利器

Singular注解可以用在集合类型的字段上,它会生成两个方法,一个是添加单个元素的方法,一个是添加整个集合的方法。这两个方法可以和@Builder生成的其他方法一起链式调用,给你的类的所有字段赋值。每天进步一点点!

2024-03-21 16:48:48 569

原创 Lombok:@Cleanup资源释放利器

Cleanup可以自动管理输入输出流等各种需要释放的资源,确保安全地调用close方法每天进步一点点!

2024-03-21 16:31:12 368

原创 Lombok:@Delegate优化代码利器

Delegate可以让你的类使用其他类的方法,而不需要自己写代码每天进步一点点!

2024-03-21 16:22:25 568

原创 LiteFlow特性:选择编排Switch

原来不打算专门写这么细的一章,但是我自己实践过程中发现,框架还是有不少限制,但是没有在官方文档或者其他博客里提到,所以初次接入的人会特别郁闷,怎么调试都不好使。话不多说,开始今天的章节吧。提示:以下是本篇文章正文内容,下面案例可供参考每天进步一点点!

2024-03-01 17:56:40 377

原创 LiteFlow特性:日志打印

每天进步一点点!

2024-02-26 09:34:57 318

原创 LiteFlow高级特性:组件事件回调

每天进步一点点!

2024-02-23 17:38:15 464

原创 LiteFlow:@LiteflowComponent注解

每天进步一点点!

2024-02-23 17:11:28 412

原创 LiteFlow高级特性:组件参数

每天进步一点点!

2024-02-23 16:54:52 591

原创 LiteFlow高级特性:前置PRE、后置FINALLY

每天进步一点点!

2024-02-23 16:24:42 241

原创 LiteFlow高级特性:retry重试

一天进步一点点!

2024-02-22 10:35:38 210

原创 Springcloud:LiteFlow

在日常的开发过程中,经常会遇到一些串行或者并行的业务流程问题,而业务之间不必存在相关性。在这样的场景下,使用策略和模板模式的结合可以很好的解决这个问题,但是使用编码的方式会使得文件太多,在业务的部分环节可以这样操作,在项目角度就无法一眼洞穿其中的环节和逻辑。在本文中,将引入规则引擎从全局角度来解决这个问题,这就是今天要介绍的主角 liteflow。liteflow 是一个轻巧而且强大的规则引擎,能够实现开箱即用,可以在短时间内就可以完成复杂的规则编排,下图是 liteflow 的整体架构。

2024-02-21 15:49:24 1507

原创 算法:m*n网格最小路径

典型的动态规划题,找准思路最重要,不清楚的时候,就多画一画,debug代码一遍就知道怎么回事了。

2024-02-20 18:02:42 247

原创 SpringCloud:日志traceId错乱

这个问题困扰挺久了,终于解决了!

2024-02-19 12:02:23 660

原创 算法:柠檬水找零

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考没啥难度,简单到有手就行!

2024-02-18 17:39:43 345

原创 Java:获取pdf中某一页的宽度和高度

金融业务,经常会涉及到合同盖章,那么盖章的时候就需要知道位置信息。比如第几页,X坐标,Y坐标。那么如果给出的坐标超出了范围,就会导致章盖不成功,那么我们怎么才能知道这个pdf文件中某一页的XY坐标呢?各种工具类的使用,重在积累,不难,但是要找一翻。

2024-01-24 16:56:43 1407

原创 Java:扫码登录

大厂面试经常问,重要的是思路,多动脑思考。

2024-01-22 17:40:08 677

原创 Java:synchronized

synchronized是Java中的一种关键字,用于实现线程同步。它的底层实现依赖于JVM的锁机制和操作系统的底层支持比较核心的概念,该看还得看!

2024-01-22 17:13:58 384

原创 Spring:StopWatch

快快替换掉自己写的耗时统计,简单到有手就行!

2024-01-20 09:38:53 446 1

原创 Springcloud:HV000183

日常问题常记录!

2024-01-18 17:53:43 1121

原创 算法:删除字符串中的所有相邻重复项

注释已添加,多想多练,简单到有手就行!

2024-01-08 16:58:41 791

原创 算法:剪绳子

详细注释已添加,快来练习吧,简单到有手就行!

2024-01-05 09:39:38 533

原创 算法:动态规划之字符串模式匹配

解题过程已奉上,快快练起来,简单到有手就行!

2024-01-04 16:22:48 595

原创 算法:两个超级大数相加

注释已添加,动动手练习练习,简单到有手就行!

2024-01-03 16:40:29 526

空空如也

空空如也

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

TA关注的人

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