- 博客(84)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 实战:Docker Compose 下 Nginx、Java、Mysql 和 Redis 服务协同部署(包含解决浏览器访问Linux部署服务器本地资源问题)
通过这个实战,我们成功搭建了一个多服务协同部署的环境,其中Nginx作为静态资源服务器,Java负责业务逻辑。利用Docker Compose,我们实现了服务的快速部署和环境一致性,为开发和测试提供了便利。
2023-12-08 15:33:37
2156
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 docker容器中解决中文乱码(详解)
docker部署java开发web项目。nohup显示打印日志出现中文乱码,中文显示为问号???。
2023-01-29 15:02:10
12100
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MyBatis动态sql之批量修改、批量新增(使用foreach标签的一条sql语句解决)
批量新增和批量修改在业务中是很常见的,一条sql访问数据库和通过代码循环体中循环访问数据库做单个数据新增修改相比较下:一条sql访问数据库性能上明显提升,代码且简洁明了。
2022-11-12 13:15:05
10048
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IDEA上代码注释模板设置、serialVersionUID自动生成设置、git提交项目时忽略无用文件、字符编码UTF8设置、注解生效激活设置、Java编译版本设置
IDEA上git提交项目时忽略无用文件、开发时常用的文件代码模板设置、字符编码UTF8设置、注解生效激活设置、Java编译版本设置、serialVersionUID自动生成设置
2022-08-08 16:57:33
10557
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RabbitMq+死信队列+邮箱通知的SpringBoot实战
公司项目中有一段业务并发访问量大,lz思考耗时逻辑代码交予消息中间件RabbitMq异步处理,但是如果这段耗时逻辑报异常了怎么办,这时可以想到使用死性队列,那死性队列中的异常消息怎么处理呢,lz想到了使用邮箱通知来通知管理人员,管理人员处理好异常后对异常消息进行手动转移至主业务队列达到解决问题的目的。废话不多说,思路有了开始实战............
2022-07-16 16:15:21
1369
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Docker打包镜像(三种方式)并发布到Docker Hub
公司项目发生较大改动(添加表、重要文件备份、自动脚本上传),在原有的项目镜像基础下重新打包生成新的镜像,并发布到Docker Hub上。1、进入docker2、宿主机复制文件到docker(当然也可以用Xftp):3、连接数据库执行sql文件......
2022-07-13 20:59:05
20652
2
原创 Centos安装Nginx(手把手教学两种安装方式)
在CentOS上安装Nginx,通常可以通过两种方式:使用YUM包管理器安装(适用于官方仓库或EPEL仓库中包含的Nginx版本),或者从源代码编译安装(适用于需要特定版本或自定义Nginx的情况)。
2024-07-16 09:24:23
2049
2
原创 关于程序员那些【越早知道越好的】道理
随着科技的发展和互联网的普及,计算机技术已经成为了人们生活中不可或缺的一部分。而在这个充满机会和挑战的时代,程序员成为了备受追捧的职业之一。然而,要成为一名优秀的程序员并不是一件容易的事情,需要不断地学习和提高自己的能力,才能在这个竞争激烈的行业中占据一席之地。本文将从个人经验和行业发展趋势出发,为大家分享一些关于成为一名优秀程序员的建议和忠告。总之,成为一名优秀的程序员需要不断学习和提高自己的技能和能力,注重团队合作和沟通,保持开放心态和创新精神,同时制定明确的职业规划和目标,不断追求自我提高和发展。
2024-06-28 14:50:50
619
4
原创 电脑维护百科全书:从硬件到软件的全面保养指南
在信息时代的滔滔江河中,个人电脑已悄然成为我们学习与工作中不可或缺的智识灯塔。然而,维持其卓越性能与延长使用寿命,绝非偶然,而是建立在细致入微的维护基础之上。本指南犹如一张详尽的航海图,引领你深入探索电脑保养的艺术,精心汇总了一系列实战派的保养秘籍,旨在助你成为那位默默无闻“数字英雄”的守护者。电脑维护,是一项综合性的修为,融汇硬件的精细护理、软件的精益优化、数据的坚固保险以及科学的使用习惯培养。
2024-06-28 14:47:59
557
原创 RabbitMQ实战宝典:从新手到专家的全面探索
在当今分布式系统架构中,消息队列已成为不可或缺的一部分,而RabbitMQ作为其中的佼佼者,凭借其强大的功能和灵活性,广泛应用于各种规模的应用场景中。本文将带你从基础概念出发,深入探讨RabbitMQ的核心特性,通过实战案例与Java代码示例,引领你踏上成为RabbitMQ大师的旅程。RabbitMQ是一个开源的消息代理和队列服务器,它遵循AMQP(Advanced Message Queuing Protocol)协议,支持多种编程语言,包括Java。
2024-06-20 15:55:19
1251
2
原创 数据结构—排序、查找、图论和字符串算法之Java实例
排序算法是数据整理的利器,它们能将混乱的数据有序化。快速排序、归并排序、插入排序和选择排序等是常见的排序算法。// 快速排序// 分区操作,找到基准元素的正确位置// 对基准元素左边的子数组进行递归排序// 对基准元素右边的子数组进行递归排序// 选择数组的最后一个元素作为基准元素// i 指向比基准元素小的元素的最后位置j < high;j++) {i++;// 交换元素,将比基准元素小的元素放在左侧// 将基准元素放到正确的位置上// 返回基准元素的索引// 归并排序。
2024-06-20 15:38:51
303
原创 MySQL大师之路:从入门到精通的全方位实战指南
MySQL,作为一款广受欢迎的关系型数据库管理系统,以其卓越的性能、稳定性及灵活性,成为了众多企业和个人开发者的数据存储首选。本指南旨在为初学者及有经验的数据库管理员提供一条由浅入深的学习路径,覆盖MySQL的方方面面,从基础概念到高级应用,再到最佳实践,助您成为MySQL领域的专家。-- 创建数据库 `school`-- 使用 `school` 数据库USE school;-- 创建 `students` 表。
2024-06-14 14:28:41
1122
6
原创 Java中的Mysql数据库备份与定时任务快速实现(详细代码示例)
通过结合Java的定时任务功能和数据库备份逻辑,我们可以轻松地实现数据库的自动备份。在实际应用中,还需要考虑备份的安全性、性能、可靠性以及恢复策略等多个方面。此外,定期测试备份文件的完整性和可恢复性也是非常重要的。
2024-05-08 17:33:03
2628
23
原创 深入解析AI大模型:原理、挑战与前景
在现今技术飞速发展的时代,AI大模型学习已成为科技领域的研究热点。要想在这一领域取得突破,研究者需掌握扎实的数学基础、编程能力以及特定领域的业务知识。本文将深入剖析AI大模型的原理、挑战与前景,为读者提供有益的建议。AI大模型学习是一个充满挑战和机遇的领域。通过不断学习和探索,我们可以更好地应对未来的技术变革。在这个过程中,我们需要掌握扎实的数学基础、编程能力以及特定领域的业务知识,同时关注模型的优化与挑战,共同推动AI大模型学习的发展。
2024-03-30 15:40:37
1291
3
原创 深入解析MybatisPlus多表连接查询实践
通过上述分析,能够用 MybatisPlus 解决多表连接查询中的一对一一对多多对多查询。上述代码行文紧凑,充分利用 IDE 对 Lambda 表达式的支持,在编译期间完成对代码的检查。业务逻辑清晰,可维护性、可修改性优势明显。一次查询需要访问至多两次数据库,时间复杂度为o(1),主键查询或者索引查询,查询效率高。
2024-01-23 17:15:16
7240
2
原创 Docker高效管理指南:一键清理、停止与删除所有容器和镜像
在日常的开发和部署中,精细调整和简化Docker管理是提高效率不可或缺的一环。通过灵活应用上述命令,我们能更便捷地管理容器和镜像,保障系统的可靠性和稳定性。在执行删除操作时,务必慎重行事,以免造成不必要的损失。深入了解这些高级且灵活的Docker命令,将使你在处理复杂的应用场景时得心应手。通过容器日志管理、资源限制与统计、多容器协同等命令,你能更全面地掌握Docker的强大功能,确保你的应用在各种环境中稳定运行。在这个不断演进的技术领域中,善用这些命令将助力你更好地适应和应对多变的开发和部署挑战。
2023-12-22 16:46:42
2593
原创 流动的力量:解锁Java 8 Stream的高级特性
在编程的世界里,Java 8 Stream的高级奇术既是技术的精进,更是对代码之美与力的深度追求。在这个充满挑战与机遇的时代,我们透过深度解析Stream的高级拓展,不仅是为了追求代码的优雅与高效,更是为了在代码的艺术殿堂中创造出更为令人惊艳的杰作。
2023-12-19 15:53:31
659
原创 代码魔法:递归嵌套的《迷宫之旅》算法解析
在实际应用中,这样的代码奇迹具有广泛的应用价值,尤其在路径搜索问题中。递归算法展现了其奇妙之处,通过简洁而有效的解决方案,让我们能够在编码的世界中探索未知。这样的深度搜索不仅让编程更具挑战性,同时也为解决复杂问题提供了一种独特而强大的思维工具。总之,这次迷宫之旅不仅是代码的奇妙演绎,更是对递归思想和深度搜索精髓的一次呈现。它为编码的世界增添了神秘的色彩,让我们在解决问题的道路上不断探索、不断前行。
2023-12-19 14:31:48
636
原创 Java与前端:风云变幻的技术之路
在技术的风口浪尖,我们不能被过度的言论所左右。Java和前端依然有着广阔的发展空间,关键在于我们如何看待和把握技术的变革。转变思维,积极学习,不仅是对技术的尊重,更是对自身职业生涯的负责。通过理性的看待和积极的行动,我们可以在这场技术风暴中找到属于自己的机会,实现个人职业目标。让我们携手迎接技术的挑战,共同书写属于我们这个时代的辉煌篇章。
2023-12-16 15:22:52
493
原创 低代码开发:激发创新还是程序员的末日?
低代码开发是一种注重可视化和图形化界面的软件开发方法,它的目标是通过最小的手动编码,让更多的人参与应用程序的开发过程。相对于传统的编程方式,低代码开发注重提供简单易懂的界面和工具,使非专业开发人员也能够快速构建应用程序。这种开发方式倡导使用图形化的用户界面、拖放元素以及少量的手动编码,以加速应用程序的开发过程。低代码平台通常提供了丰富的预建组件和模块,使开发者能够通过组合和配置而非传统的编写代码的方式来完成任务。总的来说,低代码开发并非伪需求,它是时代的产物,是技术不断进步的表现。
2023-12-08 17:01:07
1095
原创 在Ubuntu系统上部署Docker和Docker-Compose服务(实战篇)
在这篇文章中,我们将从查看防火墙状态开始,逐步引导大家完成Docker和Docker-Compose的安装、配置以及使用过程。通过学习这些关键步骤,你将更加熟练地运用容器技术,为未来的项目提供更便捷的开发和部署方案。无论你是刚刚接触Docker的新手,还是希望进一步优化Docker在Ubuntu上的使用,这篇指南都将为你提供有益的信息。通过这篇实战指南,我们成功在Ubuntu系统上部署了Docker和Docker-Compose服务,为未来的开发和部署提供了强大的容器化支持。
2023-12-05 20:39:43
1689
原创 CentOS服务自启权威指南:手动启动变为开机自启动(以Jenkins服务为例)
CentOS系统提供了多种配置服务开机自启动的方式。本文将介绍其中两种常见的方式,一种是使用Systemd服务管理器配置,不过,在实际中,如果你已经通过包管理工具安装的,那么服务通常已经被配置为Systemd服务,只需要命令设置开机自启动即可。但是如果你是压缩包解压的方式安装服务,可以参考如下步骤。另一种是通过修改文件实现。在这里,我们以Jenkins为例,演示如何将其手动启动的服务配置为开机自启动。通过这两种配置方式,你可以轻松将服务(以Jenkins为例)在CentOS系统启动时自动启动。
2023-12-05 17:32:27
2036
原创 代码人生,养生有道
在代码的征程中,我们往往忽略了自身的身体健康。这次的活动,我们不妨一同探讨一下,作为程序员,如何通过科学的养生方式,告别亚健康,迎接更健康、更充实的人生。只有在身体健康的基础上,我们才能更好地迎接代码世界的挑战。让养生成为程序员生活的一部分,我们才能更长远地投身于我们热爱的编程事业中。期待你的分享,为养生添彩!
2023-12-01 10:37:19
467
原创 解决Web端请求响应超时HTTP状态码504和110 timed out错误(Nginx配置调整)
在前端开发中,发送请求时,有时会遇到请求响应超时的问题(如HTTP状态码504和110错误)。这种问题可能是由于网络延迟、服务器响应时间过长或请求数据量过大等原因造成的。为了解决这个问题,我们可以通过配置 Nginx 来调整相关参数,以提高请求处理和响应时间。通过以上的配置,我们可以提高 Nginx 对于大型请求头和请求主体的处理能力,并增加代理的超时时间,从而解决Web端请求响应超时的问题。请根据具体需求调整参数的数值。
2023-11-16 15:30:35
1932
原创 MySQL性能优化实践:SQL查询优化之使用只读索引、IN方法和临时表分批查询(附加:索引的创建删除命令)
在处理大量数据时,MySQL的性能可能面临瓶颈。为了提升查询效率,本文将介绍三种优化SQL查询的方法:只读索引、IN方法和临时表分批查询。通过Java示例代码和讲解,帮助读者理解并应用这些优化技巧,提升MySQL查询性能。通过本文介绍的只读索引、IN方法和临时表分批查询这三种优化方法,你可以提升MySQL的查询性能。根据实际需求和场景,选择合适的优化方法,可以获得更好的查询体验。
2023-11-07 20:18:55
402
原创 掌握Maven和SpringBoot的灵活性:定制化lib目录和依赖范围
在开发基于Maven和SpringBoot的项目时,我们经常会使用第三方库来满足需求。然而,有时候我们需要更灵活地控制这些库的依赖范围和加载方式。本文将介绍如何使用Maven和SpringBoot实现定制化的lib目录和依赖范围。经过如下定制化后,打包执行jar时就不会报错(运行日志报错显示使用lib下中jar的类`ClassNotFoundException`和`NoClassDefFoundError`)
2023-11-03 09:00:57
1070
2
原创 解决Docker服务unhealthy无法访问(报错:sshd[xx]: error: kex_exchange_identification: Connection closed)
公司项目统一放在私有部署的Gogs服务上,Gogs服务是一种用于统一版本管理的Git系统。它旨在提供一个易于安装和使用的Git服务,适用于个人用户、团队或小型组织。通过Gogs服务,用户可以创建、管理和共享Git存储库,以便进行代码版本控制和协作开发。
2023-10-31 13:17:27
1069
原创 Java并发编程指南:如何正确使用信号量和线程池熔断机制
在分布式系统中,选择合适的熔断机制是保护系统免受故障影响的关键。本文将介绍使用信号量和线程池两种常见的熔断机制,并提供Java和Spring Cloud Alibaba框架下的示例代码,帮助您深入理解和应用。本文讲解了信号量熔断机制和线程池熔断机制,并给出了Java和Spring Cloud Alibaba框架下的示例代码。选择适合的熔断机制要考虑资源限制、请求处理时间和容错能力等因素。如果你的场景资源有限且需要快速响应请求,那信号量就是个不错的选择。
2023-10-28 10:59:05
601
原创 实例详解:Java使用JWT和Redis实现高效单点登录(SSO)
单点登录(Single Sign-On,简称SSO)是一种身份验证和访问控制机制,允许用户使用一组凭证(如登录名和密码)登录到多个应用程序中,而无需为每个应用程序单独进行身份验证。用户只需要登录一次就可以访问所有系统的应用和资源。相对于传统的每个系统都需要登录一次的方式,单点登录可以提高用户体验,降低用户的登录成本。在本文中,我们将通过使用JWT(JSON Web Token)和Redis来实现SSO功能,并提供详细的Java代码实例。通过结合JWT和Redis,我们可以轻松实现单点登录(SSO)的功能。
2023-10-25 11:36:39
3032
原创 后台上传:Java+Vue+Websocket实现OSS文件上传进度条功能完整教程
通过以上步骤,我们实现了一个包含上传文件和实时显示上传进度的文件上传功能。前端使用Vue编写了上传组件,后端使用Java和Spring Boot进行文件上传处理。通过调用阿里云OSS服务和监听上传文件字节来计算进度,我们能够实时显示文件上传的进度条,提升用户体验。结束语:人生最大的浪费不是金钱的浪费,而是时间的浪费、认知的迟到。
2023-10-13 13:17:58
4477
7
原创 CentOS系统上定时备份与清理Java项目日志文件
在开发和维护Java项目时,日志文件是关键的调试和故障排查工具。然而,随着时间的推移,日志文件可能会不断增长,导致文件过大,降低了系统的性能并且难以管理。为了解决这个问题,我们将介绍如何在CentOS系统上实现定时备份与清理Java项目日志文件的方案。通过设置定时器,结合Shell脚本的备份与清理操作,我们可以解决Java项目日志过大的问题。定时备份可以保留历史日志记录以供参考和排查问题,而清理操作可以防止日志文件过大导致的写入失败。
2023-10-09 00:00:00
619
1
原创 SpringCloud中的分布式锁用法详解(Java+Redis SETNX命令)
在分布式系统中,保证数据的一致性和并发控制是至关重要的。分布式锁能够解决多个进程/线程同时访问共享资源的问题,确保只有一个进程/线程能够获得锁。本文将介绍如何使用Java和Redis实现分布式锁,并提供示例代码和注意事项。在Spring Cloud项目中,使用Java和Redis结合实现的分布式锁可以确保订单的一致性和并发控制。通过合理使用锁的粒度以及注意事项,可以减少死锁问题并提高系统的并发性能。分布式锁的使用能够在多个实例同时提交订单时,仅有一个实例可以成功进行操作。
2023-10-08 08:52:56
490
1
原创 React实现多图片预览功能、预览图上下张切换(实战示例)
在React项目中,展示和预览多张图片是一种常见的需求。本篇帖子将介绍如何使用React和antd库来实现这一功能,并探讨如何在预览模态框中切换到前一张或后一张图片。本篇帖子介绍了如何使用React和antd库实现多图片预览功能,并在预览模态框中实现了切换到前一张或后一张图片的拓展功能。通过对状态的管理和处理用户点击事件,我们可以轻松地实现这一功能。希望本篇文章能帮助你理解和应用多图片预览的技术实现方法。
2023-09-27 20:34:49
1766
原创 Rust解决Bug错误“error: future cannot be sent between threads safely”
在开发过程中,我们可能会遇到错误消息: “error: future cannot be sent between threads safely”。这个错误通常是由于使用了不可发送(not Send)的类型引起的,尤其是类型。这意味着我们不能将一个互斥锁(mutex)在不同线程间进行传递,而 Tokio 运行时又允许任务在每个.await点之间在不同线程间移动。因此,我们需要重新组织代码以确保互斥锁的析构函数在.await之前运行,以避免出现此错误。还有另外一种方案是使用。通过使用LocalSet。
2023-09-22 10:56:28
943
原创 常用的正则表达式30个,整数、浮点数、中文、英文字母、手机号、邮箱、日期、IP等等( JavaScript、Java)
正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它使用特定的语法规则来对字符串进行模式匹配和文本搜索。下面,LZ整理了一些常见的正则表达式模式,帮助你更好地处理数据验证。正则表达式是处理和验证文本数据的强大工具,它可以用于各种场景,包括表单验证、文本搜索和数据清洗。在编程和数据处理中,了解并熟练使用正则表达式,将有效提升你的开发效率。希望本文提供的常用正则表达式能对你的开发工作有所帮助!
2023-09-19 16:42:33
2908
2
原创 Git在已有的项目中引入Submodule子模块管理:添加、更新、删除(实战示例代码)
在进行Git版本控制的过程中,有时候我们需要在已有的项目中引入子模块,以便复用其他独立的Git存储库的代码或文件。本文将详细介绍如何在已有项目下添加、更新和删除Git的Submodule子模块,并提供相关的示例代码。在本文中,LZ讲解了我们如何在已有的Git项目中添加、提交、更新和删除Submodule子模块。使用示例代码演示了在已有项目中添加devices文件夹,并引入两个子模块module1和module2的过程。还介绍了如何提交这些修改到主项目中,以及其他开发人员如何初始化和更新子模块。
2023-09-12 11:56:48
6047
原创 一条指令解决Linux和Windows下杀死指定端口进程的方法(附Shell和Batch脚本)
在日常开发和系统管理中,经常会遇到需要终止特定端口上的进程的情况。本文将介绍如何在 Linux 和 Windows 系统下,使用一条指令来杀死指定端口的进程,同时还将提供相应的 Shell 脚本和 Batch 脚本示例,以实现更便捷的操作。在 Linux 系统中,你可以使用kill命令来终止指定端口上的进程。以下是一条结合lsof命令的命令示例,它会查找指定端口(比如8080)的进程并杀死它:(注:以下全程root操作,非root操作请自行添加sudo)这条命令中,会找到端口8080。
2023-08-31 09:36:47
1951
原创 React组件间数据传递(弹框和高阶组件(HOC)特性实现)
在现代前端开发中,React 已经成为了最受欢迎的 JavaScript 库之一。而在复杂的应用中,不同组件之间的数据传递问题显得尤为关键。在本文中,我们将探讨一种高效的方法,即如何利用弹框和高级组件特性来实现 React 组件间的数据传递。我们将通过一个具体的业务场景来深入讲解假设我们正在开发一个项目管理系统,其中一个关键功能是发起项目立项审批。在主页面上,用户可以看到一张项目列表,每个项目都带有一个“发起审批”按钮。点击该按钮后,一个弹框将显示,允许用户选择公司部门并查看相关的审批流程。
2023-08-24 19:47:03
830
原创 org.xml.sax.SAXParseException: 元素类型 “select“ 必须后跟属性规范 “>“ 或 “/>
项目build编译是不会检查xml的语法,mapper.xml文件是项目运行时java虚拟机根据mybaits创建文件实例的时候检查报错,遇到问题不用慌,错误日志看起来。
2023-08-21 09:00:20
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人