- 博客(31)
- 收藏
- 关注
原创 重生之我在Java世界------学工厂设计模式
想象你去麦当劳点餐。作为顾客,你只需要说"我要一个巨无霸",服务员就会帮你准备好汉堡。你不需要关心这个汉堡是怎么做的,需要什么原料,谁来烤肉饼,怎么组装 - 这些都是麦当劳后厨(工厂)的事情。这就是工厂模式的核心思想: 你只需要告诉工厂你要什么,工厂负责帮你生产出来。
2024-10-30 16:24:37
1479
2
原创 【Vue3】基于 Vue3 + ECharts 实现北京市区域地图可视化
在大数据可视化项目中,地图展示是一个常见而重要的需求。本文将介绍如何使用 Vue3 和 ECharts 实现一个交互式的北京市区域地图可视化项目,包含地图数据展示、区域钻取、动态连接线等功能。
2024-10-26 11:13:52
2096
1
原创 【Java】使用iText依赖生成PDF文件
在实际开发中,我们经常需要生成PDF文档,比如报告、通知书、证书等。本文将介绍如何使用iText库在Java中生成PDF文件,并结合实际案例讲解具体实现步骤。功能:用户能够实现对录用通知的信息录入、打印功能。业务:用户可以对作者名字、论文题目、期刊名称、录用时间等信息录入,并且可以生成PDF版的录用通知书。
2024-10-24 16:51:29
3915
原创 【Java异常】面试官问你Java中的异常,这篇就够了
介绍了Java中的异常处理机制,涵盖了从基础概念到高级技巧的各个方面。文章首先解释了Java异常的本质和层次结构,Java中的常见异常:NullPointerException、IndexOutOfBoundsException、ClassNotFoundException等。对于每种异常,文章都提供了具体示例和防范措施。异常处理技巧,包括try-catch块的使用、finally块的重要性、以及Java 7引入的try-with-resources语句。
2024-10-10 10:20:54
1873
1
原创 探秘幂等性设计——唯一索引,乐观锁,悲观锁,分布式锁
本文深入探讨了幂等性设计在构建高可用、高并发分布式系统中的重要作用。文章首先介绍了幂等性的概念和常见实现方案,如唯一索引、乐观锁和悲观锁。接着重点分析了高并发场景下实现幂等性的难点,并提出引入分布式锁的解决方案,详细介绍了分布式锁的原理、实现和注意事项。
2024-09-30 11:10:48
1997
原创 Java反射机制的原理、核心类、实际应用、优缺点、具体工具类BeanUtils。
反射机制是Java中一种很强大的功能,它允许程序在运行时动态地获取和操作类的信息,通过反射,可以在运行时通过获取类的名称、方法、字段等信息。动态地创建对象,调用方法,访问和修改字段,以及执行其他与类相关的操作。获取类的信息创建对象实例调用方法访问和修改字段获取和操作注解这些操作都可以在不知道类的具体名称的情况下完成,使得程序具有极高的灵活性和通用性。
2024-09-28 16:25:42
1548
原创 Redis 五大基本数据类型及其应用场景进阶(缓存预热、雪崩 、穿透 、击穿)
Redis是一个使用C语言编写的高性能的基于内存的非关系型数据库,基于Key/Value结构存储数据,通常用来缓解高并发场景下对某一资源的频繁请求 ,减轻数据库的压力。它支持多种数据类型,如字符串、哈希、列表、集合、有序集合等。Redis以其高性能、高可靠性和丰富的特性而闻名,被广泛应用于缓存、消息队列、实时分析等领域。
2024-09-27 09:29:14
1625
原创 看了这篇博客,你还不了解HashMap?
HashMap通过巧妙的设计实现了高效的键值对存储和检索。利用哈希函数和数组提供O(1)的平均访问时间。通过链表和红黑树解决哈希冲突。动态扩容机制保证了性能和空间利用率的平衡。
2024-09-26 08:56:55
1152
原创 从业务场景带你了解RabbitMQ消息队列
引入RabbitMQ及其死信队列机制后,我们优雅地解决了充电桩系统中因设备故障导致的超时订单问题。这不仅提高了系统的稳健性,也极大改善了用户体验。RabbitMQ提供的丰富特性为我们实现复杂的业务逻辑提供了有力支持。
2024-09-22 14:39:52
1224
原创 微服务架构中的负载均衡与服务注册中心(Nacos)
通过合理使用负载均衡和注册中心,我们可以构建一个更加健壮、可扩展的微服务架构。这不仅提高了系统的可用性,还大大增强了运维的灵活性。在实际业务中,要根据具体的场景选择合适的策略,并持续优化以应对不断变化的业务需求。在一个快速发展的电商平台中,用户服务可能需要经常扩容或者进行维护。如果订单服务中硬编码了用户服务的地址,每次用户服务发生变化都需要修改订单服务的代码并重新部署,这显然是不可接受的。当订单服务需要调用用户服务时,它如何选择具体调用哪一台用户服务器?Nacos是一个功能强大的注册中心和配置管理平台。
2024-09-20 15:18:21
1791
1
原创 重生之我在Java世界------学单例设计模式
单例模式是面向对象编程中最简单却又最常用的设计模式之一。它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的原理、常见实现方法、优缺点,以及在使用过程中可能遇到的陷阱。单例模式虽然概念简单,但在实际应用中需要考虑诸多因素,如线程安全、延迟加载、序列化等。选择合适的实现方法并注意潜在的陷阱,对于正确使用单例模式至关重要。在使用单例模式时,应该根据具体的应用场景和需求,权衡其利弊,做出最适合的选择。
2024-09-16 19:53:27
1703
原创 Java常见异常及Spring Validation框架详解
Spring Validation框架为我们提供了一种优雅而强大的方式来处理参数校验。通过使用这个框架,我们可以提高代码的可读性和可维护性,集中管理验证逻辑,减少手动编写参数检查代码的工作量,并提供清晰的错误信息给客户端。在实际开发中,合理使用Spring Validation不仅可以帮助我们构建更加健壮和可靠的应用程序,同时也能够有效预防一些常见的Java异常。
2024-09-12 10:18:53
1170
原创 Spring框架详解:IoC容器、依赖注入和Bean生命周期
Spring框架通过其核心特性IoC和DI,彻底改变了Java应用的开发方式。它提供了一种松耦合、易测试的方式来构建应用程序。通过深入理解Bean的生命周期、依赖注入的方式以及Spring的配置选项,开发者可以更好地利用Spring框架来创建健壮、可维护的应用程序。随着Spring生态系统的不断发展,如Spring Boot的引入,使得开发Spring应用变得更加简单和快速。
2024-09-11 08:49:06
1461
原创 Knife4j:打造优雅的SpringBoot API文档
文章全面涵盖了Knife4j的主要特性和使用方法,并在原有内容的基础上进行了扩展。我添加了更多的代码示例,深入讨论了一些高级特性,并提供了最佳实践建议。这篇文章应该能够帮助读者全面了解Knife4j,并在实际项目中有效地使用它。
2024-09-10 08:45:51
1364
1
原创 Lombok: 简化Java开发的强大工具
Lombok是一个Java库,它通过注解的方式极大地简化了Java代码的编写过程。通过自动生成常用的方法,Lombok不仅提高了开发效率,还使代码变得更加简洁易读。让我们一起深入探索Lombok的使用方法及其带来的优势。Lombok的使用虽然简单,但它带来的效益是巨大的。通过减少样板代码,它不仅提高了开发效率,还增强了代码的可读性和可维护性。然而,在使用Lombok时也需要注意一些潜在的问题,如可能影响代码的可调试性等。因此,建议在团队中统一使用规范,以充分发挥Lombok的优势。
2024-09-09 10:18:40
1150
原创 Spring MVC: 构建Web应用的强大框架
Spring MVC 是 Spring Framework 的一个子项目,它基于MVC模式构建。清晰的角色分离可重用和可替换的组件灵活的配置与 Spring 生态系统的无缝集成Spring MVC 是一个功能强大且灵活的框架,适用于构建各种规模的 Web 应用。通过合理的结构设计和丰富的功能支持,它大大简化了 Web 开发的复杂性。
2024-09-07 10:17:28
1518
原创 Maven:简化Java项目管理的利器
在传统的Java项目开发中,我们经常面临一些常见问题:手动下载和管理JAR包、在不同项目间复制粘贴依赖、解决复杂的依赖关系等。这些琐碎而繁重的工作不仅耗时,还容易引入错误。Maven应运而生,旨在解决这些问题,为Java开发者提供一个标准化的项目管理和构建工具。依赖管理:通过简单的配置,自动下载和管理项目所需的所有JAR包。标准化项目结构:提供统一的目录结构,使项目更加清晰和易于维护。构建流程自动化:一键完成编译、测试、打包等操作,大大提高开发效率。跨项目重用:便于在不同项目间共享和重用代码。
2024-09-06 10:50:07
1518
3
原创 数据库基础——04(关联查询,内外全自连接)
数据库至此已经完结散花,开始学习java和数据库打交道咯向着光,努力奔跑!🎉🎉🎉🎉🎉😎😎😎😎😎。
2024-09-05 08:39:47
477
1
原创 数据库基础——03(聚合函数,子查询)
联合多张表查询数据,意味着查询的结果几种字段来自多张表。聚合函数不统计NULL值的记录。在AVG和COUNT上最为明显。
2024-09-04 08:35:33
740
原创 数据库基础——02
不等于 也是不等于 (更偏向使用这个去表示不等于)当别名当中含有SQL关键字时,要使用引号。< 小于 >= 大于等于。当别名含有空格时,要使用引号。
2024-09-03 08:53:47
816
原创 数据库基础——01
插入数据时,值不能违背CHECK约束要求。更新数据时也不能违背CHECK约束要求。DATETIME可以保存年月日时分秒。
2024-09-02 10:06:26
1508
2
原创 线程池和连接池
通过使用连接池,您的应用程序可以更高效地管理数据库连接,提高性能和可扩展性。在实际应用中,需要根据具体场景调整连接池的参数,以达到最佳效果。如果没有,可能会创建新的连接(取决于池的配置)。这段代码初始化了 Druid 连接池,设置了数据库驱动、URL、用户名、密码等基本信息,以及最大连接数和初始连接数。好的,我会结合您提供的代码,为您详细介绍连接池的作用和应用场景。这个示例展示了如何创建线程池、提交任务和关闭线程池的基本操作。包中,是Java标准库的一部分,不需要额外的依赖。关闭线程池,等待所有任务完成。
2024-08-30 08:45:10
1212
1
原创 Java自定义枚举状态码、全局异常处理
HTTP定义了很多状态码,比如200表示成功,404表示资源未找到,使用HTTP状态码虽然能够大致表示请求的处理结果,但是无法精确的表示某些特定的业务情况。状态回馈更加精准自定义状态码可以针对性地表示某种业务的特定情况,更加精准地反映请求的处理结果处理错误更加方便开发者可以针对每个状态码特定的处理,以便于更好地处理不同的错误情况易于扩展自定义状态码能够更好地应对业务的变化,可以根据业务需要自由地添加、移除或修改状态码来适应新的业务场景电商项目用户模块 (UserController)请求URL。
2024-08-29 08:34:29
1907
7
原创 JDBC连接MySQL数据库详解
JDBC(Java Database Connectivity)是Java语言中用于执行SQL语句的标准API。它为多种关系数据库提供统一访问,使用Java语言编写的应用程序可以通过JDBC与各种数据库建立连接,进行数据插入、查询、更新、删除等操作。JDBC为Java应用程序提供了一种强大而灵活的数据库访问方式。通过掌握JDBC,开发者可以轻松地实现各种数据库操作,为应用程序增添数据持久化的能力。
2024-08-28 17:59:42
1392
3
原创 MyBatis:简化Java数据库操作的利器
MyBatis是一个半自动化的ORM(对象关系映射)框架。它的特别之处在于,它让你能够直接控制SQL,同时又能享受到ORM框架带来的便利。想象一下,你有一个简单的User类:使用MyBatis,你可以轻松地将这个类映射到数据库:</select></mapper>是不是很直观?这就是MyBatis的魅力所在!
2024-08-27 10:22:15
1253
1
原创 Linux上部署上线项目基本流程
这条命令为MySQL的root用户设置密码(没有密码时)。数据库操作通常是I/O密集型的,单独的服务器可以提供更好的性能。这条命令清理旧的构建文件,打包新的JAR文件,并跳过测试。这条命令在后台运行Java应用,并将输出重定向到日志文件。这条命令使用ivos.sql文件恢复数据到MySQL。编辑Nginx配置文件,设置静态文件路径和后端代理。这条命令安装Java开发环境和Maven构建工具。这条命令将编译好的JAR包传输到后端服务器。这条命令将构建好的前端文件传输到代理服务器。
2024-08-26 21:04:44
1208
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人