
Java
文章平均质量分 77
以实战为线索,逐步深入Java开发各个环节,掌握后端常用性能体验优化思路,打造完整的后端工作流,提升工程化编码能力和思维能力。
热心码民阿振
所有的痛苦都是上天给予的成长提示!!!
展开
-
数据结构—排序、查找、图论和字符串算法之Java实例
排序算法是数据整理的利器,它们能将混乱的数据有序化。快速排序、归并排序、插入排序和选择排序等是常见的排序算法。// 快速排序// 分区操作,找到基准元素的正确位置// 对基准元素左边的子数组进行递归排序// 对基准元素右边的子数组进行递归排序// 选择数组的最后一个元素作为基准元素// i 指向比基准元素小的元素的最后位置j < high;j++) {i++;// 交换元素,将比基准元素小的元素放在左侧// 将基准元素放到正确的位置上// 返回基准元素的索引// 归并排序。原创 2024-06-20 15:38:51 · 350 阅读 · 0 评论 -
Java中的Mysql数据库备份与定时任务快速实现(详细代码示例)
通过结合Java的定时任务功能和数据库备份逻辑,我们可以轻松地实现数据库的自动备份。在实际应用中,还需要考虑备份的安全性、性能、可靠性以及恢复策略等多个方面。此外,定期测试备份文件的完整性和可恢复性也是非常重要的。原创 2024-05-08 17:33:03 · 3509 阅读 · 23 评论 -
深入解析MybatisPlus多表连接查询实践
通过上述分析,能够用 MybatisPlus 解决多表连接查询中的一对一一对多多对多查询。上述代码行文紧凑,充分利用 IDE 对 Lambda 表达式的支持,在编译期间完成对代码的检查。业务逻辑清晰,可维护性、可修改性优势明显。一次查询需要访问至多两次数据库,时间复杂度为o(1),主键查询或者索引查询,查询效率高。原创 2024-01-23 17:15:16 · 9393 阅读 · 2 评论 -
流动的力量:解锁Java 8 Stream的高级特性
在编程的世界里,Java 8 Stream的高级奇术既是技术的精进,更是对代码之美与力的深度追求。在这个充满挑战与机遇的时代,我们透过深度解析Stream的高级拓展,不仅是为了追求代码的优雅与高效,更是为了在代码的艺术殿堂中创造出更为令人惊艳的杰作。原创 2023-12-19 15:53:31 · 716 阅读 · 0 评论 -
掌握Maven和SpringBoot的灵活性:定制化lib目录和依赖范围
在开发基于Maven和SpringBoot的项目时,我们经常会使用第三方库来满足需求。然而,有时候我们需要更灵活地控制这些库的依赖范围和加载方式。本文将介绍如何使用Maven和SpringBoot实现定制化的lib目录和依赖范围。经过如下定制化后,打包执行jar时就不会报错(运行日志报错显示使用lib下中jar的类`ClassNotFoundException`和`NoClassDefFoundError`)原创 2023-11-03 09:00:57 · 1169 阅读 · 2 评论 -
Java并发编程指南:如何正确使用信号量和线程池熔断机制
在分布式系统中,选择合适的熔断机制是保护系统免受故障影响的关键。本文将介绍使用信号量和线程池两种常见的熔断机制,并提供Java和Spring Cloud Alibaba框架下的示例代码,帮助您深入理解和应用。本文讲解了信号量熔断机制和线程池熔断机制,并给出了Java和Spring Cloud Alibaba框架下的示例代码。选择适合的熔断机制要考虑资源限制、请求处理时间和容错能力等因素。如果你的场景资源有限且需要快速响应请求,那信号量就是个不错的选择。原创 2023-10-28 10:59:05 · 788 阅读 · 0 评论 -
实例详解:Java使用JWT和Redis实现高效单点登录(SSO)
单点登录(Single Sign-On,简称SSO)是一种身份验证和访问控制机制,允许用户使用一组凭证(如登录名和密码)登录到多个应用程序中,而无需为每个应用程序单独进行身份验证。用户只需要登录一次就可以访问所有系统的应用和资源。相对于传统的每个系统都需要登录一次的方式,单点登录可以提高用户体验,降低用户的登录成本。在本文中,我们将通过使用JWT(JSON Web Token)和Redis来实现SSO功能,并提供详细的Java代码实例。通过结合JWT和Redis,我们可以轻松实现单点登录(SSO)的功能。原创 2023-10-25 11:36:39 · 3561 阅读 · 0 评论 -
后台上传:Java+Vue+Websocket实现OSS文件上传进度条功能完整教程
通过以上步骤,我们实现了一个包含上传文件和实时显示上传进度的文件上传功能。前端使用Vue编写了上传组件,后端使用Java和Spring Boot进行文件上传处理。通过调用阿里云OSS服务和监听上传文件字节来计算进度,我们能够实时显示文件上传的进度条,提升用户体验。结束语:人生最大的浪费不是金钱的浪费,而是时间的浪费、认知的迟到。原创 2023-10-13 13:17:58 · 5130 阅读 · 7 评论 -
CentOS系统上定时备份与清理Java项目日志文件
在开发和维护Java项目时,日志文件是关键的调试和故障排查工具。然而,随着时间的推移,日志文件可能会不断增长,导致文件过大,降低了系统的性能并且难以管理。为了解决这个问题,我们将介绍如何在CentOS系统上实现定时备份与清理Java项目日志文件的方案。通过设置定时器,结合Shell脚本的备份与清理操作,我们可以解决Java项目日志过大的问题。定时备份可以保留历史日志记录以供参考和排查问题,而清理操作可以防止日志文件过大导致的写入失败。原创 2023-10-09 00:00:00 · 756 阅读 · 1 评论 -
SpringCloud中的分布式锁用法详解(Java+Redis SETNX命令)
在分布式系统中,保证数据的一致性和并发控制是至关重要的。分布式锁能够解决多个进程/线程同时访问共享资源的问题,确保只有一个进程/线程能够获得锁。本文将介绍如何使用Java和Redis实现分布式锁,并提供示例代码和注意事项。在Spring Cloud项目中,使用Java和Redis结合实现的分布式锁可以确保订单的一致性和并发控制。通过合理使用锁的粒度以及注意事项,可以减少死锁问题并提高系统的并发性能。分布式锁的使用能够在多个实例同时提交订单时,仅有一个实例可以成功进行操作。原创 2023-10-08 08:52:56 · 563 阅读 · 1 评论 -
常用的正则表达式30个,整数、浮点数、中文、英文字母、手机号、邮箱、日期、IP等等( JavaScript、Java)
正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它使用特定的语法规则来对字符串进行模式匹配和文本搜索。下面,LZ整理了一些常见的正则表达式模式,帮助你更好地处理数据验证。正则表达式是处理和验证文本数据的强大工具,它可以用于各种场景,包括表单验证、文本搜索和数据清洗。在编程和数据处理中,了解并熟练使用正则表达式,将有效提升你的开发效率。希望本文提供的常用正则表达式能对你的开发工作有所帮助!原创 2023-09-19 16:42:33 · 4064 阅读 · 2 评论 -
org.xml.sax.SAXParseException: 元素类型 “select“ 必须后跟属性规范 “>“ 或 “/>
项目build编译是不会检查xml的语法,mapper.xml文件是项目运行时java虚拟机根据mybaits创建文件实例的时候检查报错,遇到问题不用慌,错误日志看起来。原创 2023-08-21 09:00:20 · 753 阅读 · 0 评论 -
MD5、RSA 和自定义签名的 Java服务端到端数据安全实战
在现代的数字世界中,数据的安全性和完整性变得尤为重要。为了确保数据在传输和存储过程中不受到攻击,我们可以借助各种加密和签名技术来加强数据安全。本文将介绍如何使用 MD5、RSA 加密,以及如何自定义签名规则来保护数据的安全性。下面介绍如何结合 MD5、RSA 加密以及自定义签名规则,实现 Java 数据的安全传输和验证。本文介绍了如何结合 MD5、RSA 加密以及自定义签名规则,实现 Java 数据的安全传输和验证。原创 2023-08-17 09:10:23 · 693 阅读 · 0 评论 -
一键导出:用Java实现自定义格式的周报Excel文件
我们将每个项目负责人负责的所有项目的总结信息汇总,并添加到Excel表格中。这个周报导出工具使得周报的填写和管理变得更加高效和方便。它不仅减少了手动操作的工作量,还大幅度降低了数据处理和导出的错误率。希望这个工具能对您的项目管理和团队协作有所帮助!原创 2023-07-27 09:14:14 · 618 阅读 · 0 评论 -
Java开发以List<String>为筛选条件智能更新List<YourEntity>列表的方法(附带实战代码)
在实际项目开发中,这种智能的列表更新方法可以帮助我们更高效地处理开发人员的变动,保持数据库记录的一致性。使用示例代码,您可以更好地理解和应用本文中的解决方案。希望本文对您有所帮助,使您能够编写出高效、智能的开发人员列表更新方法!原创 2023-07-13 08:37:42 · 418 阅读 · 0 评论 -
深入解析MyBatisPlus:手动编写mapper和mapper.xml层实现IPage<YourEntity>返回类型
通过上述方法,我们可以方便地手动定义mapper和mapper.xml层,以支持返回类型为的分页查询。需要注意的是,当使用作为参数类型时,请将mapper.xml中的设置为,并将查询语句中的#{current}和#{size}修改为和。原创 2023-07-11 15:21:14 · 3311 阅读 · 1 评论 -
Java 解决重复提交问题和表单唯一标识的 Redis 缓存实现
在开发 Web 应用程序时,重复提交和表单唯一标识是常见的问题。重复提交可能导致数据重复插入或重复操作,而表单唯一标识则用于确保每个表单提交都是唯一的。本文将介绍如何使用 Java 来解决这些问题,并结合 Redis 缓存提供实际的案例。什么是重复提交问题?重复提交问题指的是用户在表单提交后,多次点击提交按钮或者刷新页面导致同一请求多次执行。为了避免重复提交,我们可以采取以下解决方案之一:后端生成唯一标识:后端在生成表单时,生成一个唯一的标识并将其嵌入到表单中。原创 2023-06-25 10:45:56 · 1547 阅读 · 0 评论 -
五个有用的工具帮助您提高代码质量
对于开发人员而言,代码质量一直是一个非常重要的话题。高质量的代码不仅可以提高应用程序的性能,还可以减少代码错误和维护成本。然而,如何确保代码质量呢?下面介绍五个有用的工具,可以帮助您提高代码质量。综上所述,以上五个工具可以帮助开发人员提高代码质量,增强代码的可读性和可维护性,提高代码开发效率。这些工具并不是唯一的,还有很多其他的工具可以帮助开发人员更好地进行开发和维护代码,例如代码分析工具、持续集成工具等。但是,以上这五个工具是一个良好的开始,可以让开发人员在日常工作中更好地协作和开发。原创 2023-05-04 11:45:35 · 1357 阅读 · 0 评论 -
使用Java模拟Web端的POST或GET请求,实现自动化操作:加密狗烧制技术详解
硬件锁(加密狗)加密软件。与金雅特公司合作的方式是:买家公司开发一个授权程序(这里公司的授权程序:Encrypt类的encrypt()方法),进行授权管理用户锁。注意:LZ只演示模拟Web端的POST或GET请求过程,以达到自动化实现加密狗烧制。原创 2023-04-19 09:00:47 · 947 阅读 · 0 评论 -
使用Java自动化实现网页抓取,摆脱鼠标点击,轻松高效完成任务
网页数据的抓取已经成为很多行业不可或缺的一部分。而传统的网页抓取往往需要人工操作,费时费力,且容易出现失误。因此,自动化网页抓取技术的出现,大大提高了效率和精度。本文将介绍如何使用Java语言进行自动化网页抓取,避免鼠标点击,轻松高效完成任务。需要注意的是,使用自动化工具进行网页抓取时,应该遵守网站的使用规则,避免对网站造成不必要的负担和干扰。总之,使用Java进行自动化网页抓取可以大大提高效率和精度,避免人工操作过程中的失误和疏漏。原创 2023-04-18 13:55:18 · 870 阅读 · 0 评论 -
MyBatis实现 Java 实体类和数据库中日期类型之间的转换(超详细)
数据库存储的时间字段的类型是datetimeJava实体类的时间字段类型是Date需求:响应前端的时间字段格式为”yyyy-MM-dd HH:mm:ss“原创 2023-03-14 17:17:16 · 11428 阅读 · 9 评论 -
SpringCloud启动服务,服务不需要访问任何数据库或数据源,报错:Failed to configure a DataSource: ‘url‘ ...
启动消费者服务的时候报错如下:该服务启动需要访问数据库来存储和检索数据。为了实现这一点,需要配置数据源。在配置数据源时,必须提供数据库连接的URL。如果没有提供URL,则会出现配置数据源时缺少"url"属性的错误消息。该服务不需要访问任何数据库或数据源,您可以在应用程序的yml或properties配置文件中删除数据源配置,以避免出现"Failed to configure a DataSource"错误。(注:删除后可能依然会出现该错误,解决方案如下:)原创 2023-03-11 14:35:20 · 879 阅读 · 0 评论 -
OSS对象存储赋予RAM用户Bucket的只读和下载的权限
阿里云的OSS对象存储服务提供RAM访问控制,精准的给不同的角色和用户赋予不同的权限,公司要求创建一个RAM用户(只有某Bucket的读取和下载权限),目的就是保护Bucket中的资源安全,误删除的危险操作。话不多说,实操如下:原创 2023-03-01 17:02:51 · 2001 阅读 · 0 评论 -
Java后台服务版本升级之更新功能开发(SpringBoot项目)
公司产品后台服务版本升级之更新功能开发:资源打包后上传到云服务上,项目定时下载云服务器上最新版本对应的资源包解压至本地服务器,然后客户登录web点击更新按钮,进行服务的更新,更新功能对应的操作有:①当前版本和最新版本标识调整;②处理跨版本更新中间的增量sql和脚本的执行;③重定向jar包自启动处理(保证当前项目运行的是最新版本);④项目启动初始化时检测最新版本并启动最新的jar包;原创 2023-01-28 16:22:41 · 3435 阅读 · 0 评论 -
Java后台服务版本升级之增量资源包打包功能开发(SpringBoot项目)
公司产品后台服务版本升级之增量资源包打包功能开发:每一次版本升级的增量sql(SpringBoot项目的resources下)和增量sql相对应的资源(在资源云服务器上:Centos7系统)打包下载接口。业务:运维人员登录后台系统点击资源打包功能,下载压缩的资源zip包上传到另一个云服务器(专门用于版本升级的),用户的本地服务器可以定时检测同步是否有新版本,从而下载对应的资源包原创 2023-01-18 10:25:27 · 916 阅读 · 0 评论 -
Java对结果集List<Object>进行模糊查询和Page分页
公司项目需要对在线用户进行管理,在线用户的ID信息存储于缓存redis,列表信息显示的时候,需要通过ID查询本地数据库获取用户信息,分页和关键字模糊查询。原创 2022-11-23 20:25:59 · 5105 阅读 · 0 评论 -
PageHelper分页失效问题(通过List流操作和手动分页来解决)
在公司项目中,成绩查询的业务中有点逻辑在内,需要数据显示两层数据结构和数据筛选和处理,web端需要分页显示,前端展示组件是饿了么UI(Element UI),Java后端接口分页插件使用的是PageHelper。原创 2022-11-15 14:56:28 · 9820 阅读 · 14 评论 -
MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)
批量新增和批量修改在业务中是很常见的,一条sql访问数据库和通过代码循环体中循环访问数据库做单个数据新增修改相比较下:一条sql访问数据库性能上明显提升,代码且简洁明了。原创 2022-11-12 13:15:05 · 10591 阅读 · 4 评论 -
简单工厂模式、工厂方法模式、抽象工厂模式演变之JAVA实战理解和图解
当产品等级比较固定的,可以考虑使用抽象工厂模式。当产品等级经常变化时,则不建议使用抽象工厂模式,可以考虑使用工厂方法设计模式。当产品少且固定变化少时,简单工厂设计模式即可。。原创 2022-10-12 19:21:38 · 624 阅读 · 0 评论 -
建造者模式之Java实战个人理解和图解
设计模式在开发中作用之大,它以一种标准的方式供广大开发人员使用,为开发者的沟通提供了一套机制,帮助开发者更好地明白和更清晰地描述一段被给出的代码。可以使人们更加方便简单复用成功的设计模式和结构。可以使人们深入理解面向对象的设计思想,提高软件的开发效率,节约设计成本等等。LZ这里介绍一下二十三种设计模式之建造者模式。原创 2022-09-15 20:51:13 · 1266 阅读 · 0 评论 -
七大设计原则Java实战之个人理解和图解
我们知道23个开发设计模式对应七大设计原则(单一职责原则、里氏替换原则、依赖倒置原则、开闭原则、迪米特法则(最少知道原则)、接口隔离原则、组合优于继承原则)。是前人总结下来的,以下是我个人Java实战学习,包含自己的个人理解和图解。原创 2022-09-08 14:07:01 · 835 阅读 · 0 评论 -
RabbitMq+死信队列+邮箱通知的SpringBoot实战
公司项目中有一段业务并发访问量大,lz思考耗时逻辑代码交予消息中间件RabbitMq异步处理,但是如果这段耗时逻辑报异常了怎么办,这时可以想到使用死性队列,那死性队列中的异常消息怎么处理呢,lz想到了使用邮箱通知来通知管理人员,管理人员处理好异常后对异常消息进行手动转移至主业务队列达到解决问题的目的。废话不多说,思路有了开始实战............原创 2022-07-16 16:15:21 · 1472 阅读 · 2 评论 -
IDEA上代码注释模板设置、serialVersionUID自动生成设置、git提交项目时忽略无用文件、字符编码UTF8设置、注解生效激活设置、Java编译版本设置
IDEA上git提交项目时忽略无用文件、开发时常用的文件代码模板设置、字符编码UTF8设置、注解生效激活设置、Java编译版本设置、serialVersionUID自动生成设置原创 2022-08-08 16:57:33 · 10982 阅读 · 0 评论 -
SpringBoot模块化开发之模块循环依赖问题
启动类模块:certificate_service(pom.xml中添加了通用模块和考试模块作为依赖)、通用模块:certificate_service_commons、考试模块:certificate_service_exam(pom.xml中导入了通用模块作为依赖)。考试模块需要调用启动类主模块的userMapper的函数获取数据库中的用户数据。......原创 2022-08-08 10:58:13 · 2457 阅读 · 1 评论