- 博客(215)
- 资源 (2)
- 收藏
- 关注

原创 Dubbo详解,用心看这一篇文章就够了【重点】
1.1 Dubbo概述Dubbo是阿里巴巴开源的基于 Java 的高性能RPC(一种远程调用) 分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。简单的说,Dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有Dubbo这样的分布式服务框架的需求。并且本质上是个远程服务调用的分布式框架(告别Web Service模式中的
2022-03-23 16:36:19
111861
56

原创 MongoDB详解,用心看这篇就够了【重点】
1.1 MongoDB概述MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mo
2022-03-22 17:02:34
89424
38

原创 RabbitMQ详解,用心看完这一篇就够了【重点】
1.1 消息中间件消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统——百度百科1.1.1 应用场景1.1.1.1 异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 ;(1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端等待没有必要等待的东西。(
2022-03-15 16:33:46
141085
68
原创 唯一索引中索引失效解决办法
在MySQL中,联合唯一索引允许多个NULL值,因为NULL与NULL不相等。这意味着,即使在联合唯一索引中,如果某一列的值为NULL,那么即使其他列的值相同,也不会触发唯一性冲突。这可能会导致数据的唯一性约束失效,从而违反业务逻辑中的唯一性要求。
2025-02-17 10:10:50
293
原创 Java反射机制:获取对象动态字段值
Java的反射API允许程序在运行时查询和使用类的信息。这包括获取类的字段、方法、构造函数等。反射的主要用途包括:动态创建对象:在运行时创建类的实例。访问私有字段和方法:即使字段或方法是私有的,也可以通过反射来访问和修改。动态调用方法:在运行时调用对象的方法。
2025-02-13 10:01:24
347
原创 EasyExcel导出自定义的数据
在现代Web开发中,数据导出功能是一个常见的需求,用户经常需要将数据导出为Excel文件,以便进行进一步的分析或记录。在Java后端开发中,EasyExcel是一个简单易用且功能强大的库,可以帮助我们轻松实现这一功能。本文将通过一个简单的示例,我们常常用的可能是他的注解式的导出,本文展示如何使用EasyExcel来导出自定义的数据,当然如果更复杂的可以使用原生Apache POI库进行导出。这个示例展示了如何导出一个简单的数据集,但你可以根据需要扩展它,以适应更复杂的数据结构和导出需求。
2025-02-13 09:52:43
454
原创 feign调用跳过HTTPS的SSL证书校验配置详解
不添加跳过SSL证书校验的配置可以显著提高安全性,但可能会导致连接失败,特别是在使用自签名证书或内部CA证书的情况下。因此,建议在生产环境中正确配置和验证SSL证书,而在开发和测试环境中可以考虑使用跳过SSL证书校验的配置,但应谨慎使用。
2025-01-20 15:53:33
943
原创 深入解析RocketMQ配置与消息消费实现
在现代分布式系统中,消息队列扮演着至关重要的角色,`RocketMQ`作为一款高性能、高可靠性的分布式消息中间件,广泛应用于各种场景。本文将详细介绍`RocketMQ`的配置项,并通过一个实际的消息消费案例,帮助读者更好地理解和应用`RocketMQ`。
2025-01-19 11:39:30
368
原创 利用Java泛型和MyBatis-Plus实现通用数据存储方法
在实际项目中,我们经常需要处理批量数据的存储。例如,定时任务从外部系统同步数据到本地数据库,或者在用户提交批量数据时进行处理。传统的做法是为每种实体类编写单独的删除和插入逻辑,这不仅增加了代码量,还降低了代码的可维护性。为了解决这一问题,我们可以借助Java的泛型机制和提供的强大功能,编写一个通用的数据存储方法,适用于各种实体类型。通过利用Java泛型和的强大功能,我们能够编写出高度通用且灵活的数据存储方法。这不仅简化了代码结构,提升了开发效率,还为后续的维护和扩展提供了便利。
2025-01-19 10:51:35
729
原创 1093 - You can‘t specify target table 报错原因分析及解决办法
1093 - You can't specify target table 1093 原因分析及解决办法
2024-12-27 09:43:29
1623
原创 Mybatis-Plus updateById 方法更新无效及空值处理
在使用 Mybatis-Plus 进行数据持久化操作时,开发者可能会遇到 updateById 方法不更新空值或某些字段更新无效的情况。这通常是由于 Mybatis-Plus 默认的更新策略导致的,该策略为了防止误操作,禁止将数据库中非空字段更新为 null。然而,在某些业务场景下,允许更新空值是必要的。
2024-12-27 09:07:10
1432
原创 文件字符编码的检测工具类
主要用于自动检测文本文件的字符编码,这对于处理来自不同来源的文件非常有用。例如,你可以在读取文件时使用来确定文件的正确编码,从而避免因编码不匹配导致的数据乱码问题。
2024-12-05 09:20:12
502
原创 使用SpringBoot读取Windows共享文件
项目需要对接各种的设备仪器,有很多的类型,例如串口传输、读取数据库、TCP/IP等等方式,这些解决办法是非常多的,但是有几台机器是做完实验就会在本地生成文件,一开始我们的想法也比较多,比如业务人员每天进行导入操作,后续考虑到尽量减小业务人员的操作,想到一个简单的方式就是定时读取每个机器电脑上的共享文件,根据它的修改时间读取所需的数据文件。通过本文,我们了解了如何在应用中读取Windows共享文件。我们使用了jcifs库来处理SMB。
2024-11-01 15:29:20
660
原创 Google Aviator: 高性能Java表达式求值引擎
Aviator是一个用于Java的表达式求值引擎,它的主要特点是轻量级、高性能和易于使用。Aviator可以将表达式编译成Java字节码,然后利用JVM的强大执行能力来高效地计算结果。此外,Aviator还提供了一系列内置函数和操作符,使得开发者可以轻松地处理各种数学和逻辑运算。除了内置函数外,Aviator还支持用户定义自己的函数来扩展其功能。这使得Aviator成为一个高度可定制的工具。
2024-08-16 09:48:13
1806
原创 设计模式系列:策略模式的设计与实践
策略模式非常适合那些需要在运行时动态改变行为的场景。策略模式是一种非常实用的设计模式,可以帮助开发人员编写更加灵活和可维护的代码。
2024-08-14 15:01:46
640
原创 Java 8 中 BiFunction 的全面解析与案例分析
BiFunction 是 Java 8 中的函数式接口,用于接收两个输入参数并返回一个结果,支持方法链式调用,适用于数据处理和事件响应等场景。
2024-08-14 09:41:39
548
原创 设备对接与串口通信【JAVA】
串口通信因其简单性、灵活性和通用性,在众多应用场景中仍然保持着极高的实用价值。深入理解串口的工作原理,掌握串口通信接口的选择与编程技巧,对于更好地应用串口技术、设计出更为可靠的通信系统具有重要意义。这不仅能够帮助我们充分发挥串口通信的优势,还能在不同应用场景中灵活应对各种通信需求,确保数据传输的稳定性和准确性。因此,深入学习和掌握串口通信的相关知识,是提升通信系统设计能力、实现高效数据传输的关键所在。
2024-08-13 10:29:13
963
1
原创 Aop切面技术之存储用户信息
在面向切面编程(AOP, Aspect-Oriented Programming)中,通过定义切面(Aspect)可以在不修改源代码的情况下增加额外的行为,比如日志记录、事务管理、安全检查等。在你的场景中,你希望在方法执行之前获取当前用户的信息,并将这个信息作为参数传递给目标方法。
2024-08-12 16:28:23
358
原创 MyBatis Plus Generator代码生成
MyBatis-Plus使用FTL模板能高效自动生成规范易读的代码,支持灵活定制和多平台,降低维护成本,提高开发效率。
2024-06-18 10:19:28
1069
1
原创 ApplicationContextAware使用【工具类】
是Spring框架提供的一个接口,其主要功能是让Bean获取到Spring容器的上下文(这种机制允许Bean在运行时与Spring容器进行交互,例如访问其他Bean实例或获取配置信息。具体来说,当Spring容器初始化一个实现了接口的bean时,它会自动将注入到这个bean中。这是通过Spring容器自动调用接口中的方法来实现的。接口主要应用于需要动态访问Spring容器的场景。例如,你可能需要在一个普通的Java Bean中进行国际化操作、事件发布等,这时候实现接口就显得非常有用。
2024-06-14 09:56:35
510
原创 JWT工具【工具类】
WT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。由于其规范化的JSON结构,使得JWT应用非常广泛,是目前最流行的跨域认证解决方案之一。
2024-06-13 17:25:14
1271
原创 集合中removeIf和stream流的filter差异比较
removeIf和stream流的filter都能实现过滤功能,但是实现方式有很多的不同,并且执行效率也不一样。
2024-06-07 15:24:06
643
原创 使用Aspose技术将Excel/Word转换为PDF
Aspose是一款强大的文档处理库,支持多种编程语言,如JavaC#Python等。它提供了丰富的功能,可以轻松地实现各种文档格式之间的转换,包括WordExcelPowerPointPDF等。在本文中,我们将重点关注如何利用Aspose技术将Excel文件转换为PDF格式。通过本文的介绍,您应该已经了解了如何使用Aspose技术将Excel文件转换为PDF格式。本文只是讲解了使用Apose技术进行转换成PDF,其实该技术能够做的事情还有很多,可以轻松地实现各种文档格式之间的转换。
2024-06-07 11:49:10
3383
3
原创 Java接口常见场景:返回树形结构
Java接口返回树形结构的方式主要有以下几种:1.使用嵌套的List;2. 使用递归方法;3. 使用JSON格式的数据。这些方式的优势在于可以方便地表示和处理具有层级关系的数据,使得代码更加简洁、易读。同时,通过接口返回树形结构,可以实现数据的动态加载,提高系统的性能。
2024-06-06 11:29:47
1323
原创 高并发下使用Redis分布式锁确保接口执行唯一性【重点】
RedisLock通过使用Redis分布式锁,我们可以确保在高并发环境下,某个接口只有一个线程能够执行。这对于保证数据的一致性和完整性非常重要。
2024-06-06 10:11:03
835
原创 Java优化代码攻略
优化技巧的选择和应用需要根据具体的业务场景和性能瓶颈来决定。在进行优化时,应该首先识别瓶颈所在,然后有针对性地应用优化策略。同时,优化也应该以不牺牲代码的可读性和可维护性为前提。
2024-05-24 11:20:13
688
原创 Optional的简单使用
Optional是Java 8中的一个容器类,它可以保存一个值,也可以明确表示一个值不存在。这样,我们就可以避免直接操作null值,从而避免了NullPointerException的发生。
2024-05-21 14:38:25
342
原创 TransactionTemplate的使用【事务】
TransactionTemplate是Spring框架中用于编程式事务管理的一个类。编程式事务管理需要开发者手动编写代码来管理事务的边界,包括开始事务、提交事务和回滚事务等。而TransactionTemplate则提供了一种简化编程式事务管理的方式。
2024-03-04 15:05:38
3314
原创 自定义异步任务执行器和异常处理
在本文中,我们阐述了如何在Spring Boot框架中利用@Async注解实现异步执行以及相应异步方法中的异常处理。当涉及到单一接口需要调用多个服务资源的情况下,采用@Async注解可以触发异步操作。通过这种方式,可以有效地将各服务的结果以Future形式进行阻塞性聚合,此方法可显著提升系统性能。
2024-03-04 13:57:29
594
GitHub 星标 高分,个人博客网站【强烈推荐】
2022-02-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人