
SpringBoot
文章平均质量分 66
快速搭建和部署 Spring 应用,简化配置和依赖管理。
一勺菠萝丶
做一个俗人,贪财好色,一世风流
展开
-
如何彻底禁用 Spring Boot 的热部署功能?| 小白也能懂的解决方案
如果你正在学习或使用框架,可能会遇到一个叫做的依赖。自动重启(热部署):当你修改 Java 代码后,应用会自动重启,无需手动停止再启动。(例如:修改了Controller的代码,刷新浏览器就能看到变化)静态资源实时更新:修改 HTML、CSS、JS 等文件后,浏览器会自动刷新页面。(适合前端调试)开发者友好配置:默认关闭模板引擎的缓存(如 Thymeleaf),方便调试时实时看到修改效果。场景操作效果需要热部署保留devtools依赖自动重启、实时刷新彻底禁用热部署移除devtools。原创 2025-05-20 10:27:56 · 351 阅读 · 0 评论 -
Redis实现分布式锁的进阶版:Redisson实战指南
避免手动处理复杂边界条件获得生产级的可靠性保证轻松扩展更多分布式功能。原创 2025-05-18 16:52:26 · 880 阅读 · 0 评论 -
Redis实现分布式锁的原始方式详解:从入门到实践
通过Redis实现分布式锁需要严格遵循四个基本原则。虽然本文展示了基础实现方案,但在实际生产环境中,建议使用经过验证的框架(如Redisson),它们已经处理了续约、重试、集群容错等复杂问题。记住:分布式系统的可靠性永远不能完全依赖单一中间件,必须结合业务场景设计兜底方案。原创 2025-05-18 16:45:19 · 490 阅读 · 0 评论 -
Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码
Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码。二、配置文件中文乱码。原创 2025-05-14 19:25:23 · 365 阅读 · 0 评论 -
Java精度陷阱:为什么BigDecimal比较不能直接用doubleValue?
操作正确方式错误方式比较是否相等判断正负核心原则:涉及BigDecimal的数值比较或计算时,始终优先使用其原生方法(如compareTosubtract),避免转换为double或float。原创 2025-05-13 23:14:21 · 373 阅读 · 0 评论 -
深入浅出:Spring Boot 中 RestTemplate 的完整使用指南
在分布式系统开发中,服务间通信是常见需求。作为 Spring 框架的重要组件,为开发者提供了简洁优雅的 HTTP 客户端解决方案。本文将从零开始讲解 RestTemplate 的核心用法,并附赠真实地图 API 对接案例。原创 2025-05-11 14:53:44 · 431 阅读 · 0 评论 -
Spring Boot 中处理 JSON 数值溢出问题:从报错到优雅解决
的范围(-2147483648 ~ 2147483647),导致 JSON 解析失败!,一步到位解决问题!原创 2025-04-23 15:44:19 · 522 阅读 · 0 评论 -
使用 Docker 查看 Elasticsearch 错误日志
通过 Docker,我们可以方便地运行和管理 Elasticsearch 容器,并利用命令快速查看错误日志。原创 2025-01-02 21:52:33 · 1478 阅读 · 0 评论 -
Python 输出华丽分割线的方式大全
在 Python 编程中,有时候我们需要为日志、输出结果或者调试信息添加一些分割线,方便视觉上的区分。这篇文章将介绍几种常见的方法和一些创意的分割线设计,帮助你让代码输出更具美感和个性化。原创 2024-12-28 14:47:37 · 545 阅读 · 0 评论 -
深入理解 `@TableId(type = IdType.AUTO)`:使用方法及其与其他主键生成策略的区别
是一个常见的配置选项,它指定了主键的生成策略。在实际开发中,如何配置主键生成策略对数据库的性能和稳定性有着重要影响。表示主键由数据库自动生成,通常与自增长字段一起使用。这意味着,主键的值在插入时由数据库自增,而不是由程序代码显式指定。通常情况下,主键字段需要具有唯一性,而且数据库会根据该字段的值来区分每一条记录。雪花算法是一种分布式ID生成算法,确保在分布式环境下每个服务生成的主键唯一且递增。配置表示主键为分布式的 UUID,通常与分布式系统搭配使用,确保不同节点生成的主键不会冲突。原创 2024-11-15 12:03:05 · 1951 阅读 · 0 评论 -
微服务中的技术使用与搭配:如何选择合适的工具构建高效的微服务架构
不同的技术能够解决不同的问题,比如服务发现、API网关、服务间通信、数据存储等。而API网关的作用是作为客户端和微服务之间的中介,它将客户端的请求路由到正确的服务,并处理跨服务的功能,如认证、负载均衡、限流等。微服务架构的一个重要特性是各个服务是独立部署的,因此它们的地址(IP、端口等)是动态变化的。微服务架构提倡每个服务拥有自己的数据库(或数据存储),这就要求我们在数据库的选择和管理上也要非常灵活。作为API网关,接收所有的外部请求,并将它们路由到正确的微服务,如用户服务、商品服务等。原创 2024-11-15 11:59:38 · 1023 阅读 · 0 评论 -
Java微服务架构概述:让复杂的系统变得简单
尽管每个部门是独立的,但它们之间会通过超市的系统进行协调,比如顾客买了一些水果,系统会自动更新库存。而微服务架构则与此不同,它把一个大型应用拆分成多个小的、独立的服务,每个服务完成系统中的一个具体功能。在微服务架构中,每个服务就像这个超市中的一个部门,每个服务负责某一方面的功能,彼此之间独立但又互相协作。比如,一个服务用Java开发,另一个服务用Python开发,甚至可以使用不同的数据库。随着微服务数量的增加,如何监控和管理大量的微服务实例,确保它们的健康和稳定运行,成为一个复杂的挑战。原创 2024-11-15 11:58:29 · 557 阅读 · 0 评论 -
深入理解Elasticsearch的`_source`字段与索引优化
sourceElasticsearch 提供了灵活的_source配置,允许我们通过excludes来排除不需要存储的字段。这样做的好处包括节省存储空间、提高写入效率、减少网络负担,以及确保数据隐私。同时,即使字段不被存储,它们依然可以被索引,用于查询和检索。理解并合理配置_source字段,能有效优化系统性能,适应不同的应用场景需求。原创 2024-09-07 14:33:00 · 1680 阅读 · 0 评论 -
Java Stream API 的应用:提取并处理多属性集合
何利用 Java Stream API 进行高效的数据提取和处理。通过flatMapfilter和distinct等操作,我们能够从复杂的数据结构中提取和处理所需的信息,同时保持代码的清晰和高效。原创 2024-08-20 09:23:41 · 625 阅读 · 0 评论 -
Java控制流和循环结构详解
在Java编程中,控制流语句是基本构建块之一,它们使我们能够根据不同的条件执行不同的代码路径,以及重复执行代码块。本文将详细介绍Java中的各种控制流语句和循环结构,包括它们的用法、示例和最佳实践。原创 2024-07-31 10:01:10 · 520 阅读 · 0 评论 -
成功解决:java.security.InvalidKeyException: Illegal key size
在集成微信支付到Spring Boot项目时,可能会遇到启动报错的问题。这是由于Java加密扩展(JCE)限制了密钥的长度。幸运的是,我们可以通过简单的替换文件来解决这个问题。原创 2024-07-30 10:13:58 · 1611 阅读 · 0 评论 -
SQL查询优化:动态选择返回字段
在数据库操作中,我们经常遇到需要根据字段的存在与否动态选择返回值的场景。本文通过一个具体的例子,展示如何使用SQL语句来优化这种情况的处理,确保我们的查询结果既灵活又高效。原创 2024-07-26 10:54:58 · 681 阅读 · 0 评论 -
深入理解 SQL 中的 DATEDIFF 函数
DATEDIFF此函数返回两个日期之间的天数差。具体来说,它计算从date2到date1的天数,如果date1晚于date2,结果为正;如果date1早于date2,结果为负。原创 2024-07-25 11:23:35 · 1807 阅读 · 0 评论 -
Linux常用命令大全
Linux是一个功能强大的操作系统,广泛应用于服务器、开发和嵌入式系统中。掌握一些基本的Linux命令对于高效地使用系统至关重要。本文将介绍一些常用的Linux命令,帮助你提升操作效率。原创 2024-07-23 11:46:37 · 482 阅读 · 0 评论 -
深入探索 SQL 中的 LIKE 右模糊匹配(LIKE RIGHT)与左模糊匹配(LIKE LEFT)
在 SQL 中,LIKE子句用于在WHERE条件中搜索列中的数据,这些数据符合一定的模式。它常常与(表示任意字符序列)和(表示单一字符)通配符一起使用。原创 2024-07-18 16:40:09 · 3749 阅读 · 0 评论 -
深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
是 MySQL 中的一个字符串函数,用于返回字符串从开始位置到指定的分隔符的第 N 次出现之前的部分。这个函数尤其在处理包含分隔符的字段时显得非常实用,比如文件路径、URLs、复合字符串等。原创 2024-07-18 16:25:47 · 2959 阅读 · 0 评论 -
使用MyBatis-Plus中的IPage和LambdaQueryWrapper进行分页查询
通过上述步骤,我们可以在MyBatis-Plus中实现一个基于的类型安全查询,并结合IPage接口实现分页功能。这种方式不仅提高了代码的可读性和维护性,也使得分页实现更为简洁和高效。原创 2024-07-18 14:16:32 · 2246 阅读 · 1 评论 -
MyBatis-Plus中实现自定义复杂排序逻辑
首先,我们创建一个实例。如果查询模型(model)为空,我们直接返回一个空的实例。为了根据gateNo进行排序,我们使用last方法来添加自定义的SQL排序片段。这里使用CASE语句来处理特殊值“天”,并使用CAST函数和来分离和转换字符串为数值。String customOrderSql = "CASE WHEN gate_no LIKE '天-%' THEN 2 ELSE 1 END, " +原创 2024-07-18 11:22:11 · 1526 阅读 · 0 评论 -
如何使用Java和高德地图API将经纬度转换为地理位置信息
通过以上步骤,你可以轻松地在任何Java应用中实现经纬度到地理位置的转换。这对于开发地理信息系统(GIS)、位置服务或任何需要地理编码的应用都非常有用。希望这篇教程能帮助你在项目中实现位置转换功能。如果有任何疑问或者需要进一步的帮助,请在下方评论区留言。原创 2024-05-11 15:42:18 · 2583 阅读 · 0 评论 -
Mybatis plus自定义分页
这种方法在大多数情况下都非常高效。本文将介绍一种在服务层进行分页处理的策略,这种策略提供了更高的灵活性,适用于复杂的业务逻辑处理。在某些复杂的业务场景中,我们可能需要对数据集进行多层过滤、排序或其他预处理操作,而这些操作可能需要在应用层面完成,而非数据库层面。为了解决上述问题,我们可以将分页逻辑从数据库层移到服务层,即在获取到全部相关数据后,在应用服务器上进行分页处理。服务层分页是一种有效的数据处理策略,它通过在应用层面提供数据分页,使得开发者可以在满足复杂业务需求的同时,保持系统的响应性和灵活性。原创 2024-07-16 11:12:39 · 666 阅读 · 0 评论 -
理解和解决Spring框架中的事务自调用问题
在Spring中,如果在一个被标记的方法内部直接调用同一个类的另一个方法,第二个方法的事务管理将不会被触发。这是因为Spring事务管理默认是通过代理实现的,而这种内部调用绕过了Spring的代理机制。原创 2024-07-09 18:23:18 · 787 阅读 · 0 评论 -
如何在Java中使用Levenshtein距离实现字符串相似度匹配
Levenshtein距离是由俄罗斯科学家Vladimir Levenshtein在1965年提出的,用以量化两个字符串之间的差异。这种度量方式计算将一个字符串转换成另一个字符串所需要的最少编辑操作次数,包括插入、删除和替换字符。通过这个例子,我们可以看到Levenshtein距离是如何帮助我们在实际应用中匹配用户问题的。这种方法不仅适用于问答系统,还可以用于任何需要衡量文本相似度的场景,如搜索引擎优化、数据清洗等。原创 2024-06-27 14:40:28 · 1498 阅读 · 0 评论 -
成功解决ES高亮内容引起的字段显示不一致问题
在处理搜索引擎(如Elasticsearch)结果时,常见需求之一是对用户搜索的关键词进行高亮显示,这有助于用户快速识别搜索结果为何与其查询相关。但在实际应用中,如果处理不当,直接使用高亮片段可能会导致原始数据的部分内容丢失。原创 2024-06-25 18:44:49 · 1028 阅读 · 0 评论 -
Java开发接口设计的原则
在现代软件开发实践中,接口设计扮演着至关重要的角色。它不仅关乎代码的结构和未来的可维护性,还直接影响到软件系统的灵活性和扩展性。本文将通过实例详解几个核心的接口设计原则,帮助开发者更好地编写和管理接口,从而提升软件的整体质量。原创 2024-06-21 17:31:44 · 551 阅读 · 0 评论 -
Java 8 Stream API与日期时间处理:按年月日分组
在Java 8中,Stream API提供了一种高效且表达式丰富的方式来处理集合数据。当我们需要对集合中的对象进行分组时,是一个非常实用的工具。此外,Java 8引入的新日期时间API(位于java.time包中)让日期和时间的操作变得更加直观和易于管理。原创 2024-06-18 15:38:31 · 1202 阅读 · 0 评论 -
优化Elasticsearch搜索性能:查询调优与索引设计
在构建基于 Elasticsearch 的搜索解决方案时,性能优化是关键。本文将深入探讨如何通过查询调优和索引设计来优化 Elasticsearch 的搜索性能,从而提高用户体验和系统效率。原创 2024-06-12 17:53:31 · 1278 阅读 · 0 评论 -
Mybatis中#和$的区别(通俗简单易解版)
和的标记。了解这两种方式的区别非常重要,因为它们在安全性和功能上有明显的不同。我们将通过示例来说明这些差异,并提供实用的建议,以帮助开发者选择适当的方式,以确保应用程序的安全性和效率。原创 2024-06-12 17:38:04 · 610 阅读 · 0 评论 -
Mysql sql语句字段截取前几位,后几位等
在MySQL中,处理字符串数据时,我们经常需要对字符串进行截取操作。MySQL提供了多种字符串截取函数,用以满足不同的需求。MySQL的字符串截取函数提供了强大的工具来处理和分析字符串数据。通过合理使用这些函数,可以极大地简化SQL查询中的字符串操作。函数是一个功能强大且灵活的字符串截取函数,它允许从任意位置开始截取,并可以指定截取的长度。此函数在Hibernate框架中不支持,但可以在MySQL客户端中使用。,此函数在Hibernate框架中不得支持,但在MySQL客户端中有效。原创 2024-06-07 14:03:02 · 3382 阅读 · 0 评论 -
确保数据完整性:使用 @NotNull 和 @NotBlank 注解
NotNull和@NotBlank注解是Java中常用的数据验证工具,它们帮助开发者确保数据的完整性和有效性。理解并正确使用这些注解,可以极大提高应用程序处理数据的准确性和用户体验。在设计表单或数据模型时,合理选择和应用这些注解,对于保障数据质量至关重要。原创 2024-06-06 14:23:19 · 700 阅读 · 0 评论 -
深入解析MyBatis-Plus主键生成策略:优化数据库操作
TableId是 MyBatis-Plus 用来标注数据表主键的注解。其中,表示主键由数据库自动管理,通常对应于自增字段。这种方式简化了数据插入操作,避免了手动管理主键的复杂性。原创 2024-06-05 15:06:03 · 507 阅读 · 0 评论 -
深入理解 `@TableId(type = IdType.AUTO)`:使用方法及其与其他主键生成策略的区别
TableId是 MyBatis-Plus 用于标识数据库表主键字段的注解。是其中的一种主键生成策略,表示数据库表的主键字段采用自增策略,即由数据库自动生成主键值。在使用 MyBatis-Plus 时,选择适当的主键生成策略是非常重要的。适用于主键由数据库自动生成的场景,特别是在数据库设计中主键字段设置为自增时非常方便。而其他主键生成策略则适用于不同的业务需求,例如分布式系统、需要手动指定主键等。希望本文能帮助你更好地理解和使用及其他主键生成策略。原创 2024-05-14 16:19:52 · 6779 阅读 · 0 评论 -
使用 Lombok 的 @RequiredArgsConstructor 注解
Lombok 是一个 Java 的库,通过简单的注解帮助开发者减少样板代码。是 Lombok 提供的一个注解,用于自动生成包含所有final字段或者带有@NonNull注解的字段的构造函数。这个注解非常适用于需要依赖注入的类,使代码更加简洁明了。Lombok 的注解通过自动生成构造函数,使代码更加简洁、易读,并减少了人为错误的可能性。特别是在使用 Spring 框架进行依赖注入时,是一个非常有用的工具,可以帮助我们更高效地编写代码。原创 2024-05-27 11:08:53 · 804 阅读 · 0 评论 -
Validation failed for argument [0] 参数校验失败的解决办法
问题概述关于这个问题,是在接口参数校验的时候遇到的,使用Spring Boot下spring-boot-starter-validation进行接口参数校验时出现 “ Validation failed for argument [0] in public … ”我的使用过程 <!-- 自定义验证注解 --> <dependency> <groupId>javax.validation</groupId>原创 2021-10-26 09:54:48 · 11030 阅读 · 0 评论 -
springboot单独使用feign简化http接口调用(参考项目java-video)
前言与HttpClient和RestTemplate相比,使用springcloud的feign调用远程接口更为简便,可以通过配置的方式实现远程接口调用。但是有时我们并不想使用springcloud,而只是想在springboot中使用feign,我在网上搜了很多springboot单独集成feign的文章,但都不能用。在通过学习、开发后简单整理了一个教程。详细介绍如何在springboot中单独集成feign,以简便的方式调用远程接口。1. 引用maven <groupId>co原创 2021-10-15 17:16:50 · 3072 阅读 · 2 评论 -
Java递归构建树形数据结构实现多级树形菜单展示
public static TreeVo findChild(TreeVo pt, List<TreeVo> treeAllDistinct) { for (TreeVo ct : treeAllDistinct) { if (ct.getParentId().equals(pt.getId())) { if (pt.getChildren() == null) { pt.setC..原创 2021-04-09 09:03:07 · 370 阅读 · 0 评论