自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lisheng19870305的专栏

不积跬步,无以至千里!

  • 博客(872)
  • 资源 (15)
  • 收藏
  • 关注

转载 单元测试必备工具——自动填充对象数据

【代码】单元测试必备工具——自动填充对象数据。

2024-04-18 23:36:01 1

转载 IDEA:Error running,Command line is too long. 解决方法

3、在Edit Configurations界面下方新增的Shorten command line选项中选择JAR manifest或classpath file。2、点击Modify options设置,勾选Shorten command line。1、打开Edit Configurations。然后 Apply,OK 即可。原因是启动命令过长。

2024-04-11 00:36:02 22

转载 springboot源码探究3--spring cache探究 默认SimpleCacheConfiguration

题外话:这里还有个有意思的需要探究的源码:@Conditional,在spring容器加载时候的实现的步骤,上面根据debug显示最终执行完剩下GenericCacheConfiguration,NoOpCacheConfiguration,SimpleCacheConfiguration。那么咱们就debug看看,是不是这样(不好意思,持有怀疑态度去面对前辈)再在方法上写上下面的注解,就可以直接用了,通过debug调试可以发现,第二次触发,没有再走下面return的dao层的方法,返回的是缓存中的数据。

2024-03-12 23:28:39 24

转载 SpringBoot整合SpringCache详解

明明我们项目中使用最多的缓存技术就是Redis,用Redis就完全就可以搞定缓存的问题了,为什么还有一个,以及和Redis之间的区别。

2024-03-08 22:42:23 17

转载 不同规则引擎的对比和选型

很显然整个风控判断规则的数量是非常非常庞大的,这时候规则引擎的存在就非常有必要了,风控系统对于规则场景的诉求也几乎是最强的。在信贷、理财、支付场景会存在一个资金流转的问题,一笔资金并不是像我们所想象的,是一个点到另一个点这样的简单,往往中间会因为合规、收益等n多问题发生资金的流转决策,每一笔交易的过程可能对于业务上:出资账户、中间户是不同的,技术上:经过的系统也是不同的,这就需要我们根据不同的场景来决定这笔钱该怎么走,这就需要各种各样的规则来完成这些流转的控制。Drools 是最活跃的开源规则引擎;

2024-03-08 17:01:17 113

转载 Drools规则引擎

规则引擎drools是一款由JBoss组织提供的基于java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。Drools中文网 | 基于java的功能强大的开源规则引擎在项目中使用drools时,既可以单独使用也可以整合spring使用。

2024-03-08 16:54:31 19

转载 Java中取余(%)和取模(Math.floorMod)的区别

之前一直都认为取模和取余是一样的,甚至还怀疑设计语言的大神们不是脑子有问题么,为什么要整两个一样的东西,现在想想还是自己太 low了,竟然不能 get 到大神们的良苦用心。实对比上面的结果 ,其实你已经看出一点猫腻了,只是不敢确认而已,没错,就是你心里想的那样的。如果两个数符号相同的话,取模和取余结果是一样的(我们平常用的时候刚好前后两个数字是一样的,所以才有那个误解),如果两个数字符号不相同的话,那么取模和取余结果那就是天差地别了。取模:mod(x,y)=x-y.*floor(x./y)

2024-01-08 20:26:35 306

转载 String的hashCode可能会返回负数&解决方案

【代码】String的hashCode可能会返回负数&解决方案。

2024-01-08 20:19:32 420

转载 感受 lambda 之美-函数式编程

函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用@FunctionalInterface注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有多个默认方法,静态方法。

2023-12-27 00:09:43 347

转载 还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS!

策略模式通过接口、实现类、逻辑分派来完成,把 if语句块的逻辑抽出来写成一个类,更好维护。Map+函数式接口通过Map.get(key)来代替 if-else的业务分派,能够避免策略模式带来的类增多、难以俯视整个业务逻辑的问题。

2023-12-27 00:00:04 424 1

转载 求求你们了,别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!

在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。

2023-12-26 23:51:38 411 1

转载 阿里十年总结之软件测试的价值

质量从来不只是测试的事,全员参与、全员负责,尤其是测试开发比越来越低的情况下越来越明显。测试的工作形式也将从”保姆模式“转变为“教练模式”,通过各种质量保证机制规范和提升开发同事的质量意识、研发效能。

2023-12-26 23:44:51 24

转载 下一代软件架构,如何构建微服务核心能力

随着数字化进程的加速,各种架构设计思想风起云涌,进入百家争鸣时代,微服务架构,云原生架构,Serverless 架构,事件驱动架构,中台架构,容灾架构,到底哪种思潮代表未来呢?

2023-12-26 23:22:06 22

转载 拒绝写重复代码,试试这套开源的 SpringBoot 组件

Graceful Response是一个Spring Boot技术栈下的优雅响应处理器,提供一站式统一返回值封装、全局异常处理、自定义异常错误码等功能,使用Graceful Response进行web接口开发不仅可以节省大量的时间,还可以提高代码质量,使代码逻辑更清晰。强烈推荐你花3分钟学会它!,注意选择最新版本的分支。Spring Boot版本Graceful Response版本graceful-response-example分支2.x3.x。

2023-12-26 23:11:11 21

转载 浅析JAVA日志中的几则性能实践与原理解释

程序记录日志的过程,就是将需要记录的内容写入到磁盘文件中的过程。与生活的物流场景类似,好比是一车货物通过一套运输体系运送至目的地的过程,然而在这套物流体系中,我们往往不需要自己完成整套打包、上车、运输、卸货等全套流程,只需要将包打好之后交由专业的物流公司即可。对于我们今天所要描述的日志场景而言,日志内容是需要运送的货物,日志框架就是物流公司,而目的地就是磁盘上的文件(或其他日志收集服务器)。

2023-12-26 00:00:13 26

转载 一套万能通用的异步处理方案

良好的系统设计必须要做到开闭原则,随着业务的不断迭代更新,核心代码也会被不断改动,出错的概率也会大大增加。但是大部分增加的功能都是在扩展原有的功能,既要保证性能又要保证质量,我们往往都会使用异步线程池来处理,然而却增加了很多不确定性因素。由此我设计了一套通用的异步处理SDK,可以很轻松的实现各种异步处理。

2023-12-24 12:07:17 40

转载 SpringBoot实现动态切换数据源:轻松应对复杂多变业务需求!

上述提到了ThreadLocal和AbstractRoutingDataSource,我们来对其进行简单介绍下。:想必大家必不会陌生,全称:thread local variable。主要是为解决多线程时由于并发而产生数据不一致问题。ThreadLocal为每个线程提供变量副本,确保每个线程在某一时间访问到的不是同一个对象,这样做到了隔离性,增加了内存,但大大减少了线程同步时的性能消耗,减少了线程并发控制的复杂程度。ThreadLocal作用:在一个线程中共享,不同线程间隔离。

2023-12-24 12:01:49 132

转载 一文浅谈CodeReview中的一些思考

CodeReview是代码质量保障的关键一环,作为CodeReviewer我们要坚守团队的统一规范,严格把控每一份代码中的质量和规范等问题,牢牢的把控好代码质量关口;同时作为被CodeReviewer我们也要尊重别人的时间和意见,共同维护团队的代码规范,从CodeReview中学习别人的意见和设计思想,促进自身的快速成长。

2023-12-24 11:38:20 38

转载 7个理由:从Java8升级到Java17

从Java 8 到 Java 20,Java 已经走过了漫长的道路,自 Java 8 以来,Java 生态系统发生了很多变化。最显着的变化是 Java 的发布节奏。Java 8 于 2014 年发布,Java 17 于 2021 年发布。这两个版本之间相隔了 7 年。Java17是一个长期支持(LTS)的版本,会有更稳定和持久的维护和更新。如果你和我一样,已经使用Java 8很长时间了,觉得需要了解一下Java的新特性,那么这篇文章就是为你准备的。

2023-12-24 11:29:53 64

转载 PostgreSQL 使用CONCURRENTLY关键字创建索引时的等待列问题

索引是数据库中的一种数据结构,用于加快对表中数据的访问速度。它可以将数据按照某种特定的规则存储起来,以提高数据的检索效率。在PostgreSQL中,可以使用 CREATE INDEX 语句创建索引。在使用 PostgreSQL 创建索引时,使用 CONCURRENTLY 关键字可以避免对其他读写操作的阻塞。然而,同时也可能会遇到等待列问题,当一个事务在等待索引创建完成时需要对表进行修改操作时,该事务将会被阻塞。为了解决等待列问题,可以在低负载时段创建索引、使用较小的阻塞时间或使用其他方式创建索引。

2023-12-21 23:50:14 96

原创 权责发生制与收付实现制的区别

比如你在8月份的时候支付了1800元的房费,是3个月的费用,如果是权责发生制8月份的费用就计入600元,如果是收付实现制就计入费用1800。因此,采用权责发生制,在会计期末必须对账簿记录进行账项调整,才能够使本期的收入和费用存在合理的配比关系,从而可以比较正确地计算企业的本期盈亏。其一,凡是当期已经实现的收入和已经发生或者应当负担的费用,无论款项是否收付,都应当作为当期的收入和费用,计入利润表;其二,凡本期未曾收到的收入和未曾支付的费用,即使应归属本期,亦不应作为本期的收入和费用予以处理。

2023-10-31 00:03:07 627

转载 Oracle分层查询(递归查询):start with...connect by prior 以及 level关键字

前期准备1.level 和 connect by ,start with 合在一起,一般是用来实现递归(树)查询。2.prior是可选项3.connect by 和 start with 语句先后顺序不影响查询结果。

2023-10-24 00:30:47 1770

转载 SpringBoot整合Mybatis实现多数据源配置与跨数据源事务实例

思考: @Transactional只能指定一个事务管理器,并且注解不允许重复,所以就只能使用一个数据源的事务管理器了。首先多个数据源的事务分别都开起来,然后各事务分别去执行对应的sql(此所谓第一阶段提交),最后如果都成功就把事务全部提交,只要有一个失败就把事务都回滚——此所谓第二阶段提交。到此这篇关于SpringBoot整合Mybatis实现多数据源配置与跨数据源事务实例的文章就介绍到这了。的值,根据使用不同的数据源,选择不同的数据事务管理器。在事务的方法上添加前面我们的多数据源事务注解。

2023-10-24 00:19:51 1538 3

转载 SpringBoot循环依赖的6种解决方案

当一个类在初始化时需要另一个类的实例,而另一个类又需要第一个类的实例时,就会出现循环依赖问题。这会导致应用程序无法正确地初始化和运行,因为Spring Boot 无法处理这种循环依赖关系。在启动时程序就会报错。

2023-10-23 23:49:57 1065

转载 Oracle create index 中途取消后应该如何处理

有时会遇到这样的情况,在创建索引的过程中啪叽网断了,会话中断;或者创建索引时觉得执行太慢,直接按了crtl+c取消,直接把运行窗口关了...尝试重新建索引的时候会遇到报错ORA-00095 索引名已存在,而drop index时又报错ORA-08104 this index is being online built or rebuilt查看ORA-08104介绍。

2023-09-18 23:50:07 187

转载 oracle生产环境建索引建议使用online

不使用online,会锁表,此时所有的DML(insert,delete,update,select等)都被阻塞,将导致系统不能正常使用!是不是吓得你瑟瑟发抖?在线方式创建索引,锁的是行而非表,通过临时表进行索引的创建,所以不会影响DML操作,创建索引的速度慢一些,创建索引:CREATE INDEX 索引名 ON 表名(列名) online;online创建索引:CREATE INDEX 索引名 ON 表名(列名);非在线方式创建索引,锁表,优先创建索引,此时DML都被阻塞,所以速度快。

2023-09-18 23:42:44 1041

转载 Oracle create index 中途取消后应该如何处理

有时会遇到这样的情况,在创建索引的过程中啪叽网断了,会话中断;或者创建索引时觉得执行太慢,直接按了crtl+c取消,直接把运行窗口关了...尝试重新建索引的时候会遇到报错ORA-00095 索引名已存在,而drop index时又报错ORA-08104 this index is being online built or rebuilt查看ORA-08104介绍。

2023-09-15 00:34:14 110

转载 Git 在团队中的最佳实践--如何正确使用Git Flow

我经常收到邮件问我,他想使用Git, 但是公司还在坚持使用SVN等,问我最么办?我的办法是:第一: 把我这篇文章给他看第二: 立即找我,加入我们公司,我的邮箱是[email protected] QQ: 353275476。

2023-08-31 23:59:48 49

原创 mybatis <if>标签判断“0“不生效

表达式来解析的,在OGNL的表达式中,'0’会被解析成字符(而我传入的type却是string),java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。这种情况不生效,原因是mybatis是用。

2023-08-31 23:45:06 1071

原创 关于java中使用split方法丢失末尾空值

使用默认的split方法时,会默认丢弃字符串末尾的空值,而字符串中间的空值则会作为数组中的一项数据,不会被丢弃。1、如果 n 大于 0,代表分割字符串后数组的最大长度,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n ,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。2、如果 n 为非正,代表获取数组所有值,不会丢弃末尾空值,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。3、如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

2023-08-30 00:56:41 1171

转载 极简设计模式 - UML类图几种线条

设计模式系列目录中间先夹一篇类图的基本点吧,与人方便自己方便。用CSDN的markdown画了下类图,发现预览和实际不一样。于是放弃它,准备借UML工具画几个比现在更能传神的图,用什么画图不重要,领悟到设计图意思,设计出符合自己需求的实体才是最重要的。后边会花时间把之前的markdown类图改为第三方工具画图再以图片形式粘到对应文章内。下边结合UML图示例,介绍几个线条表示的关系:组合、聚合、关联、依赖、实现、继承(泛化)。前4种都是表达类于类之间的持有或者说使用关系。

2023-08-04 23:34:33 770

转载 SpringBoot 实现 Excel 导入导出,百万数据量,性能爆表!

重写了POI对07版Excel的解析,之前一个3M的excel用POI sax解析,需要100M左右内存,如果改用easyexcel可以降低到几M,并且再大的Excel也不会出现内存溢出;需要注意的是:如果用job的话,要避免重复执行的情况。用户拿到这个百万级别的excel文件,到底有什么用途,在他们的电脑上能否打开该excel文件,电脑是否会出现太大的卡顿了,导致文件使用不了。,增加更多的查询条件,用户通过修改查询条件,多次导数据,可以实现将所有数据都导出的功能,这样可能更合理一些。

2023-06-18 17:06:12 1335

转载 大白话告诉你 TCP 为什么需要三次握手四次挥手

关于 TCP 的三次握手和四次挥手相比大家早就烂熟于心了,毕竟这也是一个高频的面试题,但是很多小伙伴只是照本宣科,并没有真正的理解其中的原理,这篇文章,阿粉用通俗易懂的大白话带你们重新熟悉一下,已经掌握的小伙伴可以在回味一下,没有掌握的小伙伴刚好可以查漏补缺。

2023-02-12 23:28:24 617 1

转载 ReentrantLock以及AQS实现原理

OK,本文到这里为止,基本借着ReentrantLock的加锁和释放锁的过程,给大家讲清楚了其底层依赖的AQS的核心原理。基本上大家把这篇文章看懂,以后再也不会担心面试的时候被问到:谈谈你对AQS的理解这种问题了。其实一句话总结AQS就是一个并发包的基础组件,用来实现各种锁,各种同步组件的。它包含了state变量、加锁线程、等待队列等并发中的核心组件。

2023-02-09 10:49:11 283

转载 Synchronized的底层实现原理(看这篇就够了)

如果持有锁的线程在较短的时间内释放了锁,自旋锁的效果就比较好,如果持有锁的线程很长时间都不释放锁,自旋的线程就会白白浪费资源,所以一般线程自旋的次数必须有一个限制,该次数可以通过参数-XX:PreBlockSpin调整,一般默认为10。锁的状态会随着竞争激烈逐渐升级,但通常情况下,锁的状态只能升级不能降级。轻量级锁的获取流程:首先判断当前对象是否处于一个无锁的状态,如果是,Java虚拟机将在当前线程的栈帧建立一个锁记录(Lock Record),用于存储对象目前的Mark Word的拷贝,如图所示。

2023-02-08 23:46:00 779

转载 xxl-job惊艳的设计,怎能叫人不爱

xxl-job 使用 netty http 的方式进行通信,虽然也支持 Mina,jetty,netty tcp 等方式,但是代码里面固定写死的是 netty http。

2022-12-14 15:15:35 334

转载 使用Jenkins扩展钉钉消息通知

Jenkins借助钉钉插件,实现当构建失败时,自动触发钉钉预警。当接收到钉钉通知后,若想进一步查看报错具体原因,仍完全依赖邮件通知,很影响效率。如何在钉钉通知消息中,获取到本次构建的具体内容,如失败占比、失败用例报错详情等,本文记录了解决思路。“构建失败时触发钉钉通知” 是我自定义的布尔类型的项目构建参数,用于更方便的控制是否触发钉钉消息通知;组装Markdown格式的消息主体,然后调用DingTalk Webhook接口,推送消息通知。(左右滑动查看完整代码)(左右滑动查看完整代码)

2022-12-14 15:10:18 908

转载 PowerJob 新一代分布式任务调度框架(与xxl-job对比)

PowerJob 是新一代分布式任务调度与计算框架,支持 CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。

2022-12-14 15:06:54 5034 1

转载 好好的系统,为什么要分库分表?

分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。分库分表是由分库和分表这两个独立概念组成的,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起叫做分库分表。通过一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果(响应速度快),以此提升整体数据库性能。预定义算法是事先已经明确知道分库和分表的数量,可以直接将某类数据路由到指定库或表中,查询的时候亦是如此。

2022-11-30 09:11:32 572

原创 上海无居住证120积分随迁子女如何求学(中考)

2022上海无居住120证积分随迁子女不能报考高中,那么这些学生的出路在哪里?初步研究了一下。

2022-11-19 14:00:56 1895

大数据人工智能量化投资平台.pdf

大数据人工智能量化投资平台.pdf

2019-06-18

架构脑图.pdf

架构脑图.pdf

2019-06-18

软件工程师技能列表.png

软件工程师技能列表.png

2019-06-18

extjs中文api

extjs(中文api);

2019-04-22

beyondCompare3.2.3

有注册码哦。有注册码哦。有注册码哦。有注册码哦。有注册码哦。有注册码哦。有注册码哦。有注册码哦。

2019-04-18

需求申请和项目评审确认表

1、业务开展的目的(方便产品经理对整个项目的把控); 2、业务方案描述(如方案内容较多,可附于需求单后); 3、业务开展预计要达到的业绩目标(便于优先级排序和后续业务跟进); 4.功能的使用/操作人员,权限分配;

2019-03-21

版本发布计划模板001

维护发布的内容,减少上线风险;上下游依赖;配置文件变更;数据库变更;发布顺序;回滚方案; 维护发布的内容,减少上线风险;上下游依赖;配置文件变更;数据库变更;发布顺序;回滚方案;

2019-02-17

新城ppt模板

研发例会ppt;

2019-01-14

pets报名照片编辑器

pets报名照片编辑器;

2018-12-19

详细设计模板

详细设计文档模板,自带美观的9级标题样式。 包含以下内容:1、文档概括;2、整体设计说明;3、功能设计说明;4、接口设计;5、数据库设计;6、系通过监控说明;7、其他设计说明

2018-10-31

SQLyog Ultimate 12.5.0附带注册码

SQLyog Ultimate 12.5.0 网上最新版本,X64的,本人亲测安装。key有三个在包里文本里。自己选择 Ulitmate版本的Key激活,用户名随便输。

2018-10-18

集合类型IntSet以及运算

定义、实现并测试表示由整型数元素组成的集合类型IntSet。 定义、实现并测试表示由整型数元素组成的集合类型IntSet。 定义、实现并测试表示由整型数元素组成的集合类型IntSet。

2017-11-28

HugeInt类以及运算

定义HugeInt类,计算并显示出5000阶乘的值和它的位数。 HugeInt类 大数运算加法、乘法 c++实现; 定义HugeInt类,计算并显示出5000阶乘的值和它的位数。 HugeInt类 大数运算加法、乘法 c++实现;

2017-11-28

一个程序员的奋斗史(txt)

一个程序员的奋斗史.txt 本人看过后推荐给大家看的

2015-09-30

jbpm-starters-kit-3.1.2.part1

包括 part1和part2 这里面有jpbm开发要用到的jar包,开发jpbm的eclipse插件,还有jpbm的事例,内容详细。

2012-12-18

空空如也

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

TA关注的人

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