- 博客(873)
- 资源 (15)
- 收藏
- 关注
转载 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
352
转载 springboot源码探究3--spring cache探究 默认SimpleCacheConfiguration
题外话:这里还有个有意思的需要探究的源码:@Conditional,在spring容器加载时候的实现的步骤,上面根据debug显示最终执行完剩下GenericCacheConfiguration,NoOpCacheConfiguration,SimpleCacheConfiguration。那么咱们就debug看看,是不是这样(不好意思,持有怀疑态度去面对前辈)再在方法上写上下面的注解,就可以直接用了,通过debug调试可以发现,第二次触发,没有再走下面return的dao层的方法,返回的是缓存中的数据。
2024-03-12 23:28:39
145
转载 SpringBoot整合SpringCache详解
明明我们项目中使用最多的缓存技术就是Redis,用Redis就完全就可以搞定缓存的问题了,为什么还有一个,以及和Redis之间的区别。
2024-03-08 22:42:23
133
转载 不同规则引擎的对比和选型
很显然整个风控判断规则的数量是非常非常庞大的,这时候规则引擎的存在就非常有必要了,风控系统对于规则场景的诉求也几乎是最强的。在信贷、理财、支付场景会存在一个资金流转的问题,一笔资金并不是像我们所想象的,是一个点到另一个点这样的简单,往往中间会因为合规、收益等n多问题发生资金的流转决策,每一笔交易的过程可能对于业务上:出资账户、中间户是不同的,技术上:经过的系统也是不同的,这就需要我们根据不同的场景来决定这笔钱该怎么走,这就需要各种各样的规则来完成这些流转的控制。Drools 是最活跃的开源规则引擎;
2024-03-08 17:01:17
608
转载 Drools规则引擎
规则引擎drools是一款由JBoss组织提供的基于java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。Drools中文网 | 基于java的功能强大的开源规则引擎在项目中使用drools时,既可以单独使用也可以整合spring使用。
2024-03-08 16:54:31
160
转载 Java中取余(%)和取模(Math.floorMod)的区别
之前一直都认为取模和取余是一样的,甚至还怀疑设计语言的大神们不是脑子有问题么,为什么要整两个一样的东西,现在想想还是自己太 low了,竟然不能 get 到大神们的良苦用心。实对比上面的结果 ,其实你已经看出一点猫腻了,只是不敢确认而已,没错,就是你心里想的那样的。如果两个数符号相同的话,取模和取余结果是一样的(我们平常用的时候刚好前后两个数字是一样的,所以才有那个误解),如果两个数字符号不相同的话,那么取模和取余结果那就是天差地别了。取模:mod(x,y)=x-y.*floor(x./y)
2024-01-08 20:26:35
337
转载 感受 lambda 之美-函数式编程
函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用@FunctionalInterface注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有多个默认方法,静态方法。
2023-12-27 00:09:43
358
转载 还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS!
策略模式通过接口、实现类、逻辑分派来完成,把 if语句块的逻辑抽出来写成一个类,更好维护。Map+函数式接口通过Map.get(key)来代替 if-else的业务分派,能够避免策略模式带来的类增多、难以俯视整个业务逻辑的问题。
2023-12-27 00:00:04
446
1
转载 求求你们了,别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!
在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。
2023-12-26 23:51:38
432
1
转载 阿里十年总结之软件测试的价值
质量从来不只是测试的事,全员参与、全员负责,尤其是测试开发比越来越低的情况下越来越明显。测试的工作形式也将从”保姆模式“转变为“教练模式”,通过各种质量保证机制规范和提升开发同事的质量意识、研发效能。
2023-12-26 23:44:51
43
转载 下一代软件架构,如何构建微服务核心能力
随着数字化进程的加速,各种架构设计思想风起云涌,进入百家争鸣时代,微服务架构,云原生架构,Serverless 架构,事件驱动架构,中台架构,容灾架构,到底哪种思潮代表未来呢?
2023-12-26 23:22:06
44
转载 拒绝写重复代码,试试这套开源的 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
47
转载 浅析JAVA日志中的几则性能实践与原理解释
程序记录日志的过程,就是将需要记录的内容写入到磁盘文件中的过程。与生活的物流场景类似,好比是一车货物通过一套运输体系运送至目的地的过程,然而在这套物流体系中,我们往往不需要自己完成整套打包、上车、运输、卸货等全套流程,只需要将包打好之后交由专业的物流公司即可。对于我们今天所要描述的日志场景而言,日志内容是需要运送的货物,日志框架就是物流公司,而目的地就是磁盘上的文件(或其他日志收集服务器)。
2023-12-26 00:00:13
41
转载 一套万能通用的异步处理方案
良好的系统设计必须要做到开闭原则,随着业务的不断迭代更新,核心代码也会被不断改动,出错的概率也会大大增加。但是大部分增加的功能都是在扩展原有的功能,既要保证性能又要保证质量,我们往往都会使用异步线程池来处理,然而却增加了很多不确定性因素。由此我设计了一套通用的异步处理SDK,可以很轻松的实现各种异步处理。
2023-12-24 12:07:17
55
转载 SpringBoot实现动态切换数据源:轻松应对复杂多变业务需求!
上述提到了ThreadLocal和AbstractRoutingDataSource,我们来对其进行简单介绍下。:想必大家必不会陌生,全称:thread local variable。主要是为解决多线程时由于并发而产生数据不一致问题。ThreadLocal为每个线程提供变量副本,确保每个线程在某一时间访问到的不是同一个对象,这样做到了隔离性,增加了内存,但大大减少了线程同步时的性能消耗,减少了线程并发控制的复杂程度。ThreadLocal作用:在一个线程中共享,不同线程间隔离。
2023-12-24 12:01:49
221
转载 一文浅谈CodeReview中的一些思考
CodeReview是代码质量保障的关键一环,作为CodeReviewer我们要坚守团队的统一规范,严格把控每一份代码中的质量和规范等问题,牢牢的把控好代码质量关口;同时作为被CodeReviewer我们也要尊重别人的时间和意见,共同维护团队的代码规范,从CodeReview中学习别人的意见和设计思想,促进自身的快速成长。
2023-12-24 11:38:20
57
转载 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
86
转载 PostgreSQL 使用CONCURRENTLY关键字创建索引时的等待列问题
索引是数据库中的一种数据结构,用于加快对表中数据的访问速度。它可以将数据按照某种特定的规则存储起来,以提高数据的检索效率。在PostgreSQL中,可以使用 CREATE INDEX 语句创建索引。在使用 PostgreSQL 创建索引时,使用 CONCURRENTLY 关键字可以避免对其他读写操作的阻塞。然而,同时也可能会遇到等待列问题,当一个事务在等待索引创建完成时需要对表进行修改操作时,该事务将会被阻塞。为了解决等待列问题,可以在低负载时段创建索引、使用较小的阻塞时间或使用其他方式创建索引。
2023-12-21 23:50:14
331
原创 权责发生制与收付实现制的区别
比如你在8月份的时候支付了1800元的房费,是3个月的费用,如果是权责发生制8月份的费用就计入600元,如果是收付实现制就计入费用1800。因此,采用权责发生制,在会计期末必须对账簿记录进行账项调整,才能够使本期的收入和费用存在合理的配比关系,从而可以比较正确地计算企业的本期盈亏。其一,凡是当期已经实现的收入和已经发生或者应当负担的费用,无论款项是否收付,都应当作为当期的收入和费用,计入利润表;其二,凡本期未曾收到的收入和未曾支付的费用,即使应归属本期,亦不应作为本期的收入和费用予以处理。
2023-10-31 00:03:07
683
转载 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
2243
转载 SpringBoot整合Mybatis实现多数据源配置与跨数据源事务实例
思考: @Transactional只能指定一个事务管理器,并且注解不允许重复,所以就只能使用一个数据源的事务管理器了。首先多个数据源的事务分别都开起来,然后各事务分别去执行对应的sql(此所谓第一阶段提交),最后如果都成功就把事务全部提交,只要有一个失败就把事务都回滚——此所谓第二阶段提交。到此这篇关于SpringBoot整合Mybatis实现多数据源配置与跨数据源事务实例的文章就介绍到这了。的值,根据使用不同的数据源,选择不同的数据事务管理器。在事务的方法上添加前面我们的多数据源事务注解。
2023-10-24 00:19:51
1784
3
转载 SpringBoot循环依赖的6种解决方案
当一个类在初始化时需要另一个类的实例,而另一个类又需要第一个类的实例时,就会出现循环依赖问题。这会导致应用程序无法正确地初始化和运行,因为Spring Boot 无法处理这种循环依赖关系。在启动时程序就会报错。
2023-10-23 23:49:57
5202
转载 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
224
转载 oracle生产环境建索引建议使用online
不使用online,会锁表,此时所有的DML(insert,delete,update,select等)都被阻塞,将导致系统不能正常使用!是不是吓得你瑟瑟发抖?在线方式创建索引,锁的是行而非表,通过临时表进行索引的创建,所以不会影响DML操作,创建索引的速度慢一些,创建索引:CREATE INDEX 索引名 ON 表名(列名) online;online创建索引:CREATE INDEX 索引名 ON 表名(列名);非在线方式创建索引,锁表,优先创建索引,此时DML都被阻塞,所以速度快。
2023-09-18 23:42:44
1171
转载 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
152
转载 Git 在团队中的最佳实践--如何正确使用Git Flow
我经常收到邮件问我,他想使用Git, 但是公司还在坚持使用SVN等,问我最么办?我的办法是:第一: 把我这篇文章给他看第二: 立即找我,加入我们公司,我的邮箱是wangdeshui@outlook.com QQ: 353275476。
2023-08-31 23:59:48
66
原创 mybatis <if>标签判断“0“不生效
表达式来解析的,在OGNL的表达式中,'0’会被解析成字符(而我传入的type却是string),java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。这种情况不生效,原因是mybatis是用。
2023-08-31 23:45:06
1277
原创 关于java中使用split方法丢失末尾空值
使用默认的split方法时,会默认丢弃字符串末尾的空值,而字符串中间的空值则会作为数组中的一项数据,不会被丢弃。1、如果 n 大于 0,代表分割字符串后数组的最大长度,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n ,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。2、如果 n 为非正,代表获取数组所有值,不会丢弃末尾空值,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。3、如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
2023-08-30 00:56:41
1433
转载 极简设计模式 - UML类图几种线条
设计模式系列目录中间先夹一篇类图的基本点吧,与人方便自己方便。用CSDN的markdown画了下类图,发现预览和实际不一样。于是放弃它,准备借UML工具画几个比现在更能传神的图,用什么画图不重要,领悟到设计图意思,设计出符合自己需求的实体才是最重要的。后边会花时间把之前的markdown类图改为第三方工具画图再以图片形式粘到对应文章内。下边结合UML图示例,介绍几个线条表示的关系:组合、聚合、关联、依赖、实现、继承(泛化)。前4种都是表达类于类之间的持有或者说使用关系。
2023-08-04 23:34:33
1147
转载 SpringBoot 实现 Excel 导入导出,百万数据量,性能爆表!
重写了POI对07版Excel的解析,之前一个3M的excel用POI sax解析,需要100M左右内存,如果改用easyexcel可以降低到几M,并且再大的Excel也不会出现内存溢出;需要注意的是:如果用job的话,要避免重复执行的情况。用户拿到这个百万级别的excel文件,到底有什么用途,在他们的电脑上能否打开该excel文件,电脑是否会出现太大的卡顿了,导致文件使用不了。,增加更多的查询条件,用户通过修改查询条件,多次导数据,可以实现将所有数据都导出的功能,这样可能更合理一些。
2023-06-18 17:06:12
1807
转载 大白话告诉你 TCP 为什么需要三次握手四次挥手
关于 TCP 的三次握手和四次挥手相比大家早就烂熟于心了,毕竟这也是一个高频的面试题,但是很多小伙伴只是照本宣科,并没有真正的理解其中的原理,这篇文章,阿粉用通俗易懂的大白话带你们重新熟悉一下,已经掌握的小伙伴可以在回味一下,没有掌握的小伙伴刚好可以查漏补缺。
2023-02-12 23:28:24
659
1
转载 ReentrantLock以及AQS实现原理
OK,本文到这里为止,基本借着ReentrantLock的加锁和释放锁的过程,给大家讲清楚了其底层依赖的AQS的核心原理。基本上大家把这篇文章看懂,以后再也不会担心面试的时候被问到:谈谈你对AQS的理解这种问题了。其实一句话总结AQS就是一个并发包的基础组件,用来实现各种锁,各种同步组件的。它包含了state变量、加锁线程、等待队列等并发中的核心组件。
2023-02-09 10:49:11
314
转载 Synchronized的底层实现原理(看这篇就够了)
如果持有锁的线程在较短的时间内释放了锁,自旋锁的效果就比较好,如果持有锁的线程很长时间都不释放锁,自旋的线程就会白白浪费资源,所以一般线程自旋的次数必须有一个限制,该次数可以通过参数-XX:PreBlockSpin调整,一般默认为10。锁的状态会随着竞争激烈逐渐升级,但通常情况下,锁的状态只能升级不能降级。轻量级锁的获取流程:首先判断当前对象是否处于一个无锁的状态,如果是,Java虚拟机将在当前线程的栈帧建立一个锁记录(Lock Record),用于存储对象目前的Mark Word的拷贝,如图所示。
2023-02-08 23:46:00
1026
转载 xxl-job惊艳的设计,怎能叫人不爱
xxl-job 使用 netty http 的方式进行通信,虽然也支持 Mina,jetty,netty tcp 等方式,但是代码里面固定写死的是 netty http。
2022-12-14 15:15:35
365
转载 使用Jenkins扩展钉钉消息通知
Jenkins借助钉钉插件,实现当构建失败时,自动触发钉钉预警。当接收到钉钉通知后,若想进一步查看报错具体原因,仍完全依赖邮件通知,很影响效率。如何在钉钉通知消息中,获取到本次构建的具体内容,如失败占比、失败用例报错详情等,本文记录了解决思路。“构建失败时触发钉钉通知” 是我自定义的布尔类型的项目构建参数,用于更方便的控制是否触发钉钉消息通知;组装Markdown格式的消息主体,然后调用DingTalk Webhook接口,推送消息通知。(左右滑动查看完整代码)(左右滑动查看完整代码)
2022-12-14 15:10:18
972
转载 PowerJob 新一代分布式任务调度框架(与xxl-job对比)
PowerJob 是新一代分布式任务调度与计算框架,支持 CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。
2022-12-14 15:06:54
5318
1
转载 好好的系统,为什么要分库分表?
分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。分库分表是由分库和分表这两个独立概念组成的,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起叫做分库分表。通过一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果(响应速度快),以此提升整体数据库性能。预定义算法是事先已经明确知道分库和分表的数量,可以直接将某类数据路由到指定库或表中,查询的时候亦是如此。
2022-11-30 09:11:32
624
需求申请和项目评审确认表
2019-03-21
版本发布计划模板001
2019-02-17
详细设计模板
2018-10-31
SQLyog Ultimate 12.5.0附带注册码
2018-10-18
集合类型IntSet以及运算
2017-11-28
HugeInt类以及运算
2017-11-28
jbpm-starters-kit-3.1.2.part1
2012-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人