自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Roc的博客

《备忘录》

  • 博客(197)
  • 收藏
  • 关注

原创 Spring Boot项目初始化加载自定义配置文件内容到静态属性字段

本文介绍了支付系统配置的实现过程:1)在resources目录创建cXXX.properties配置文件,包含商户号、密码等关键参数;2)编写XXXConfig.java配置类,通过静态代码块加载配置文件属性;3)添加第三方JAR包的两种方式:WEB-INF/lib目录放置和pom.xml中system依赖配置。该方案实现了支付参数的集中管理和安全加载,同时提供了外部依赖的集成方法。(149字)

2025-06-27 14:26:13 83

原创 Caused by: java.security.NoSuchAlgorithmException: PBEWithSHAAndTwofish-CBC SecretKeyFactory not ava

摘要:Linux系统对接中信银行时出现PBEWithSHAAndTwofish-CBC算法不支持问题,主要原因是Bouncy Castle加密提供者验证失败。解决方案包括:1)安装官方签名的Bouncy Castle JAR并配置Java安全策略(推荐);2)动态注册提供者;3)验证JAR签名;4)调整安全策略。系统级修复需检查Java版本、更新CA证书及系统时间。验证步骤包括测试加密操作和检查提供者注册状态,同时需排查多版本冲突、类加载器问题和SELinux限制等常见问题。

2025-06-26 15:13:21 767

原创 生产级API轮询服务完整实现

摘要:本文实现了一个可配置的API轮询服务,支持按预设时间间隔序列(5秒至30分钟)自动重试查询。该服务采用线程安全设计,包含完整的错误处理机制和日志记录功能,支持优雅关闭和自定义轮询策略。核心类通过ScheduledExecutorService实现定时调度,当API返回成功状态或达到最大尝试次数时自动停止轮询,适用于生产环境中的异步任务状态检查场景。

2025-05-28 14:31:56 424

原创 MySQL表达式之公用表表达式(CTE)的使用示例

数据表中有并且的数据记录统计企业产值能力,找出所有家企业中产值最高的企业,其产值记为P。对于第i家企业,其产值为Pi则该企业的产值能力评分=Pi/P×100。

2025-04-25 12:44:15 502 1

原创 HTTP 请求头与请求体:数据存储的底层逻辑与实践指南

语义优先:严格遵循 HTTP 方法语义(GET 无体,POST 有体)。安全至上:敏感信息永远放在请求体,且通过 HTTPS 传输。性能平衡:小数据用请求头,大数据用请求体,复杂数据用 JSON。版本适配:HTTP/2 + 场景优先使用头部压缩和多路复用。通过理解请求头与请求体的底层逻辑,开发者能构建出更健壮、高效的 API 体系。在实际开发中,建议结合 OpenAPI 规范和安全扫描工具,确保每个请求的数据存储位置都经过审慎考量。

2025-04-22 15:49:21 1146 2

原创 js树形控件—zTree使用总结

树形控件的使用是应用开发过程中必不可少的。zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。zTree v3.3 API 文档从zTree官网下载的zTree包括以下组成部分metroStyle文件夹:zTree的metro风格样式相关文件(图片及css样式表)。zTreeStyle文件夹:zTree的标准风格样式文件夹(图片及css样式表)是完整的js库,可单纯加载此文件实现所有zTree功能,ztree.core。

2025-04-17 08:30:00 1594

原创 推荐一款开源、一站式SQL审核查询平台!功能强大、安全可靠!

在当今这个数据驱动的时代,数据库作为企业核心信息资产的载体,其重要性不言而喻。随着企业业务规模的不断扩大,数据库的数量和种类也日益增多,这对数据库的管理与运维工作提出了前所未有的挑战。在这样的背景下,一款高效、易用的数据库管理工具显得尤为重要。Archery,作为一款开源的数据库管理平台,以其独特的魅力成为了众多开发者和运维工程师的得力助手,如同古代战场上的利箭,精准而有力地击中了数据库管理的痛点。Archery是一个基于。

2025-04-16 16:14:30 869

原创 Java对接快递鸟,查询快递物流信息

根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递API接口,实现自动查询的功能。下面是java版本的根据单号查询物流跟踪信息的详细示例代码。只需要下载就可以运行,(自己需要简单的修改)注:登录快递鸟用户管理后台后获得。登录快递鸟用户管理后台。

2025-04-16 15:08:04 514

原创 SpringCloud-快速通关(三)

seata有服务器端和客户端,客户端要连上服务器才能使用。TC(事务协调者)在服务器端:得官网下载: 全局事务的管理者。用于维护全局和分支事务的状态,驱动TM的全局提交和回滚。TM和RM通过TC注册分支和汇报状态。TM(事务管理器)在客户端:发起全局事务,定义全局事务的范围,操作全局事务的提交和回滚。RM(资源管理器)在客户端:操作自己分支的事务提交和回滚。seata的稳定性非常重要,如果TC崩了,那所有的事务管控都失效。

2025-04-15 10:18:37 1072

原创 SpringCloud-快速通关(二)

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。

2025-04-14 17:31:40 1034

原创 SpringCloud-快速通关(一)

Spring Cloud是分布式系统一站式解决方案。什么是分布式系统?架构分:单体和分布式。集群只是一种物理形态,分布式是工作方式。架构演进单体架构集群架构分布式架构定义所有功能模块都在一个项目里单体的多服务器版本一个大型应用被拆分成很多小应用分布部署在各个机器;优点开发部署简单解决大并发解决了单体+集群的问题缺点无法应对高并发问题1:模块块升级 麻烦 问题2:多语言团队 交互不通基于自己的理解:分布式架构(模拟用户访问)通过网关来发送各个微服务的请求(请求路由)。用。

2025-04-07 10:23:03 1357

原创 SQL中累计求和与滑动求和函数sum() over()的用法

按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。sum():对某个字段求和。over():开窗,按照某种规则,将数据分组、分窗口计算。:对所有行进行求和。:按照order by对应字段的顺序,进行累计求和,即第一行到当前行,默认order by是升序排序(asc),也可以通过指定降序排序(desc)。

2025-03-28 20:22:11 2277

原创 解决IDEA中maven找不到依赖项的问题

直接去官网找到对应的依赖项jar包,并且下载到本地,然后安装到本地厂库中。

2025-03-24 15:18:30 2571

原创 MySQL表达式之公用表表达式(CTE)

WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。这个语句算是公用表表达式(CTE,Common Table Expression)。WITH AS语法是MySQL中的一种临时结果集,CTE可以在select , insert , update , delete , merge语句的执行范围定义。通过使用WITH AS语句,可以将一个查询的结果存储在一个临时表中,然后在后续的查询中引用这个临时表。

2025-03-24 10:18:01 907

原创 【Ctrl+Shift+L 引发的“性能记录已开始”问题一键解决】

组合键,竟让屏幕弹出“性能记录已开始”的提示?别慌,你并不是误入了什么神秘的开发者模式,这只是Windows系统内置的一个小功能罢了。别担心,今天这篇紧急攻略就是要帮你迅速解除这个“意外惊喜”,回归平静的操作体验!无论你是编程新手被这突如其来的提示吓了一跳,还是资深用户想进一步掌握系统控制权,这篇文章都能为你提供即刻的解决方案,同时增添一份对Windows系统深层功能的认识。因为更新了AMD最新的显卡驱动,此功能为显卡驱动的最新功能。最近使用IDEA开发时,发现使用代码格式化快捷键。

2025-03-21 11:41:17 990

原创 【npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree】

根据他的建议,我们去执行了命令之后,在你发现依赖安装好了之后,并不是所有项目都会乖乖听话,有些“顽固”项目依旧会报上面的错误,这时,就应该去看一下npm 版本了,npm@7与ERESOLVE有关的问题比较常见,这是因为npm7.x于某些事情要比npm6.x更加严格,通常解决办法就是使用。它告诉 NPM 忽略项目中引入的各个modules之间的相同modules但不同版本的问题并继续安装,保 证各个引入的依赖之间对自身所使用的不同版本modules共存。

2025-03-17 16:50:04 4271

原创 【线上几百万的消息积压如何处理?】

这时候,咱们可以把失败的消息单独拎出来,放到一个专门的队列里,慢慢处理。同时,设置一个合理的重试机制,比如间隔多长时间重试一次,重试多少次后就放弃。时刻关注系统的运行状态,一旦发现消息积压,立马就能收到报警,然后迅速处理。有时候,消息积压是因为某些消息处理失败了,然后一直重试,导致后面的消息也被堵住了。总之,处理线上几百万消息积压这事儿,关键就是要思路清晰,逻辑顺畅。这个示例很简单,就是一个消费者不断地从队列里取消息,然后处理。如果消息还是太多,处理不过来,那咱们就得考虑限流和降级了。

2025-02-21 11:31:03 121

原创 【Hash索引和B+树索引的区别?】

它的所有节点都遵循左节点小于父节点,右节点大于父节点的规则,这使得它天然支持范围查询。字段时,B+树索引会从根节点开始,逐级查找,直到找到叶子节点,获取到相应的数据。这样,当你查询时,只需调用一次哈希函数,就能迅速定位到相应的位置,速度非常快。比如,如果“金庸”的哈希值对应槽位是005,那在这个槽位中就会存储“金庸”这个key,以及指向这一行数据的引用。因为哈希函数是无序的,经过哈希算法后,原先有序的键值可能变得不连续,所以无法利用索引完成范围查询。总结一下,Hash索引和B+树索引各有优劣。

2025-02-21 10:46:12 66

原创 【@Async注解一定会异步执行吗?】

Async是Spring框架提供的一个注解,用于标记一个方法为异步方法。当你在某个方法上加上这个注解后,Spring会用一个单独的线程去执行这个方法,这样主线程就不会被这个方法阻塞,可以继续执行其他任务。虽然@Async启用了异步支持(在正确的方法上使用了@Async注解。(可选)合理配置了线程池。只有满足了这些条件,@Async注解的方法才会真正地异步执行。

2025-02-21 08:30:00 209

原创 【实现序列化和反序列化为什么要实现Serializable接口?】

首先,咱们得先明白什么是序列化和反序列化。序列化:就是把一个对象变成字节流的过程。想象一下,你把一个对象“打包”起来,然后可以很方便地通过网络传输,或者保存到文件里。反序列化:就是把字节流再变回对象的过程。相当于你把“打包”好的对象再“拆包”出来,还原成原来的对象。

2025-02-20 14:03:53 190

原创 【为什么数据库字段建议设置为NOT NULL?】

总的来说,将数据库字段设置为NOT NULL,能够确保数据完整性,避免错误和异常,提高数据一致性和索引效率,简化代码逻辑。在实际开发中,我们应该根据业务逻辑和需求,合理地使用NOT NULL约束,以提高系统的稳定性和可维护性。

2025-02-20 13:51:40 96

原创 【什么情况下不建索引?】

索引虽好,但不能滥用。在决定是否给某个字段建索引时,要考虑数据量、字段更新频率、选择性、查询频率以及字段类型等因素。合理地使用索引,才能让数据库性能得到真正的提升。记住,优化数据库性能是一个平衡的艺术,需要不断地尝试和调整。

2025-02-20 13:31:41 79

原创 【Spring Bean如何保证并发安全?】

保证Spring Bean的并发安全是一个复杂的问题,需要根据具体的业务场景和需求来选择合适的方法。在实际应用中,通常会结合多种方法来达到最佳的效果。

2025-02-20 13:20:56 96

原创 【为什么SQL语句不要过多的 join?】

总而言之,虽然JOIN是SQL里的一个强大功能,但在实际使用中,我们要注意“适度原则”。过多的JOIN不仅会影响查询性能,还会增加SQL语句的复杂度和资源消耗。

2025-02-19 09:00:00 76

原创 【@Resource和@Autowire 的区别?】

Resource:这是Java EE的一个标准注解,来源于JSR-250规范。它主要用于将容器中的Bean注入到目标对象中。@Autowired:这是Spring框架提供的注解,专门用于自动装配Spring容器中的Bean。

2025-02-19 08:30:00 73

原创 【多线程异步和MQ有什么区别?】

多线程主要用于提升应用程序的性能,特别是在处理计算密集型任务(如科学计算、图像处理、数据分析等)和I/O密集型任务(如文件读写、网络请求等)时效果显著。总的来说,多线程异步和MQ都是实现异步编程的有效手段,但它们在实现方式、应用场景和特性上存在显著差异。多线程更适合于提升单个应用程序的性能,特别是在处理计算密集型和I/O密集型任务时;而MQ则更适合于在分布式系统中解耦服务之间的依赖,保证系统的可靠性和可扩展性。MQ主要用于解耦服务之间的依赖,保证系统的可靠性和可扩展性。

2025-02-18 14:30:31 174

原创 【@Component和@Bean的区别?】

@Component和@Bean注解都是Spring框架中用于注册Bean的注解,但它们在使用方式、自定义性、适用场景等方面存在明显的区别。@Component注解适用于普通的Java类,通过类路径扫描来自动侦测和装配;而@Bean注解则提供了更多的配置灵活性,适用于需要手动配置和管理的Bean。在实际开发中,根据具体的需求和场景选择合适的注解,可以更好地利用Spring框架的功能。

2025-02-18 11:50:06 62

原创 【为什么有些公司禁止使用@Transactional声明式事务?】

例如,一个事务方法A调用另一个事务方法B,如果B方法抛出异常,事务的传播行为设置不当,可能会导致A方法的事务也回滚,或者A方法的事务不回滚,而B方法的事务回滚,造成数据不一致。声明式事务将事务控制逻辑放在注解里面,如果项目中的复杂度增加,事务的控制可能变得更加复杂,导致代码的可读性和维护性下降。例如,一个方法被多个事务注解包裹,或者事务注解的属性设置不当,都可能导致代码难以理解和维护。声明式事务,这时候就出现了事务嵌套的行为,容易引发事务的混乱,造成程序结构运行异常。

2025-02-18 11:35:03 346

原创 【binlog和redolog有什么区别?】

Binlog(二进制日志)定义:Binlog是MySQL的二进制日志系统,记录了所有更改数据库数据的语句的信息,以事件的形式保存。功能:主要用于数据恢复、主从复制以及数据审计。Redo Log(重做日志)定义:Redo Log是InnoDB存储引擎特有的日志系统,记录了对InnoDB存储引擎中数据页修改的物理操作。功能:主要用于确保事务的持久性,即使在系统崩溃时也能保证数据不丢失。记录内容:Binlog记录的是逻辑日志(SQL语句),Redo Log记录的是物理日志(数据页修改)。功能。

2025-02-17 16:09:28 432

原创 【Zookeeper如何实现分布式锁?】

ZooKeeper通过临时节点、顺序节点和监听机制等特性,提供了一种高效、可靠的分布式锁实现方式。在分布式系统中,使用ZooKeeper实现分布式锁可以避免多个节点同时操作共享资源的问题,确保数据的一致性和可靠性。

2025-02-17 15:55:07 209

原创 【如何提升接口性能?】

对于需要访问数据库或其他外部资源的接口,建议使用连接池来管理资源,避免频繁创建和销毁资源带来的开销。如果我们将这些任务并行处理,那么接口的响应时间将取决于耗时最长的模块,而不是所有模块的耗时之和。在高并发场景下,使用负载均衡器将请求均匀分配到多个服务器上,提高系统的整体处理能力和可用性。对于频繁访问但变化不频繁的数据,可以使用缓存技术来减少对数据库的访问。对于耗时较长的操作,可以考虑采用异步处理的方式,避免阻塞主线程。:确保经常查询的列上有合适的索引,但避免过多或不当的索引。:使用Redis缓存。

2025-02-17 14:37:08 55

原创 【怎么使用Redis实现一个延时队列?】

使用Redis实现延时队列通常通过有序集合(Sorted Set)来实现,利用Redis的ZSET类型及其相关命令可以很方便地实现这一功能。有序集合中的每个元素都有一个分数(score),我们可以利用这个分数来存储消息需要被处理的时间戳。当当前时间超过这个时间戳时,消息就可以被处理。

2025-02-17 11:33:39 380

原创 【Mysql索引在什么情况下会失效?】

MySQL索引在多种情况下可能会失效,导致查询性能下降。

2025-02-17 11:21:53 273

原创 【limit 1000000,10 加载很慢该怎么优化?】

在 SQL 数据库中,使用LIMIT子句进行分页查询时,如果偏移量(offset)很大,查询性能可能会变得非常差。这是因为数据库需要扫描和跳过大量的记录才能到达所需的起始位置,然后再取出所需的记录数。例如,表示跳过前 100 万条记录,然后取接下来的 10 条记录,这种操作在大数据集上可能非常慢。

2025-02-14 15:15:20 342

原创 【Redis存在线程安全问题吗?】

Redis本身是一个单线程的键值存储数据库,它使用单线程模型来处理客户端请求。在Redis服务器内部,由于一次只有一个请求在处理,因此Redis的数据操作是原子的,这从根本上避免了多线程环境下常见的竞态条件、死锁等问题。换句话说,从Redis服务器的角度来看,其处理命令的方式是线程安全的。Redis本身在处理命令时是线程安全的,但在实际应用中仍需关注客户端库的线程安全性、分布式环境下的并发控制等问题。通过采取合理的措施来降低这些风险可以确保Redis在高并发场景下的稳定性和数据一致性表现。

2025-02-13 16:22:10 418

原创 【AQS为什么采用双向链表?】

AQS(AbstractQueuedSynchronizer)是Java中用于构建同步器的一个基础框架,它采用双向链表的设计,主要是为了实现高效、灵活的线程同步机制。

2025-02-13 16:12:59 223

原创 【说一说Mybatis里面的缓存机制?】

一级缓存是SqlSession级别的缓存,它默认开启且不可关闭。每个SqlSession都有自己独立的缓存区域,缓存的生命周期与SqlSession一致。一级缓存主要用于减少同一个SqlSession中相同的查询语句执行的次数。二级缓存是Mapper级别的缓存,它可以跨SqlSession共享数据。二级缓存默认是关闭的,需要手动配置才能启用。二级缓存适用于更大范围的数据共享,但由于缓存生命周期较长,可能导致缓存不一致问题。

2025-02-11 14:57:50 50

原创 【RPC协议和HTTP协议有什么区别?】

RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许程序在不同计算机上调用程序或服务,就像调用本地函数一样。RPC隐藏了底层的网络通信过程,包括建立连接、发送请求和接收响应等细节,使得开发者可以专注于业务逻辑的实现。HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。HTTP协议定义了一套规则,用于请求和传输信息,让用户能够通过浏览器访问各种网站和资源。

2025-02-11 14:46:45 220

原创 【为什么重写 equals() 就一定要重写 hashCode() 方法】

但是,为不同的对象产生不同的整数结果可以提高哈希表的性能。方法是为了确保相等的对象有相同的哈希码,这是哈希表正常工作所必需的。这样可以保证相等的对象有相同的哈希码,从而遵守哈希表的契约。方法都被正确地重写了,那么集合的大小应该是 1,而不是 2。为了确保在使用哈希表时对象的行为是正确的,你应该始终在重写。方法,两个对象是相等的,那么调用这两个对象中任一对象的。能够正确地识别出这两个对象是相等的,并且只存储一个对象。方法,两个对象不相等,那么调用这两个对象中任一对象的。方法来确定对象在哈希表中的位置。

2025-02-11 14:30:58 47

原创 【如果你的web应用遭受到SQL注入攻击,如何应对并防止未来的攻击?】

通过将用户输入作为参数传递给SQL语句,而不是直接拼接到SQL语句中,可以确保输入被正确处理,避免SQL注入的发生。及时更新数据库管理系统和应用程序的安全补丁,修复已知的漏洞,确保系统保持在最新状态,减少被再次攻击的风险。根据损害评估的结果,清理被篡改或破坏的数据,并从备份中恢复原始数据,确保恢复后的数据完整性和安全性。通过专业的扫描工具,及时发现系统存在的SQL注入漏洞和其他安全漏洞,并采取相应的措施进行修复。:在上述不安全的代码中,用户输入直接拼接到SQL查询中,这是SQL注入的常见风险点。

2025-02-10 12:01:38 112

SpringCloud-快速通关(所有资料)

SpringCloud-快速通关系列所有资料汇总 SpringCloud-快速通关(一)文章链接地址:https://blog.csdn.net/weixin_46990523/article/details/146983646 SpringCloud-快速通关(二)文章链接地址:https://blog.csdn.net/weixin_46990523/article/details/147202367 SpringCloud-快速通关(三)文章链接地址:https://blog.csdn.net/weixin_46990523/article/details/147238489

2025-04-15

apache-seata-2.1.0-incubating-bin.tar.gz

apache-seata-2.1.0-incubating-bin.tar.gz

2025-04-15

seata-demo.zip

seata-demo.zip

2025-04-15

nacos-server-2.4.3.zip

nacos-server-2.4.3.zip

2025-04-14

sentinel-dashboard-1.8.8.zip

sentinel-dashboard-1.8.8.jar

2025-04-14

SpringCloud - 快速通关

代码+课件+逻辑图

2025-04-03

Vue-Devtools-master.zip

Vue开发工具——谷歌浏览器插件

2024-04-25

ES6新特性的部分示例代码

ES6新特性的部分示例代码+适合前端学习ES6新特性人群+供自己学习测试使用。 注意:此实例非常简单哦!!!

2024-04-25

尚硅谷谷粒商城电商项目文档及源码.zip

尚硅谷-谷粒商城电商项目-相关文档,相关软件及相关源码。 仅供学习使用哦。

2024-04-03

尚硅谷谷粒商城电商项目sql.zip

尚硅谷谷粒商城电商项目sql;仅供学习使用哦!!!

2024-04-03

Redis、Spring、RabbitMQ、Java线程、Mybatis、HashMap、JVM、MySQL相关问题的实例代码

Redis应用场景、Spring框架、RabbitMQ、Java线程、Mybatis框架、HashMap、JVM、MySQL相关问题的示例代码,供参考学习理解使用。

2024-03-03

空空如也

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

TA关注的人

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