自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 资源 (1)
  • 收藏
  • 关注

原创 当今的微服务架构还需要指定端口吗?

👨‍💻 技术成长是一场持续的旅程。如果你喜欢这篇文章,欢迎关注我的公众号「程序员wayn」,技术成长社群正招募热爱coding的你,加入我们,一起深入探讨技术、分享经验、共同成长!

2024-11-28 11:34:39 520

原创 代码编写之道:十条经验引领高效编程之旅

👨‍💻 技术成长是一场持续的旅程。如果你喜欢这篇文章,欢迎关注我的公众号「程序员wayn」,技术成长社群正招募热爱coding的你,加入我们,一起深入探讨技术、分享经验、共同成长!

2024-11-28 11:33:49 658

原创 Java Map的演进历史:从JDK 1.7到JDK 21

本文给大家介绍了关于 Java 中 Map 接口在 JDK1.7 到 JDk21 中演进以及新增方法,还介绍了一些 Guava、Commons Collections、Eclipse Collections 对 Map 的增强,希望大家喜欢。

2024-11-19 14:16:14 1038

原创 做一个优雅的提问者

最近加了很多新人朋友,大部分都是初级开发者。大部分人都想要加入开发者群交流讨论平时遇到的问题。新人朋友有这种想法其实蛮好的,但是很多人似乎都不知道如何有效提出自己的问题,他们往往一张图或者一句话就往群里一扔,并且希望能有群友给自己解答。

2024-08-16 14:53:18 978

原创 我跟你说@RefreshScope跟Spring事件监听一起用有坑!

在这个场景里我们使用的是 Spring 项目,问题本质是 @RefreshScope 在 Spring 自带的事件监听类搭配使用时,会导致 bean 重复进而导致监听类逻辑被重复执行,当我们去掉 @RefreshScope 后,也就没有这种情况。“@RefreshScope 在 Spring 自带的事件监听类搭配使用时,会生成另外一个相同的 bean 导致监听类被重复触发”在上面的先定义问题中,我们提炼一下关键词,Spring:这个关键词在 Spring 项目中必带,大家应该没有意见把。

2024-07-09 09:48:37 752

原创 MySQL 9.0 GA 来了!

从 MySQL 8.0.4 开始,MySQL 默认身份验证插件从 mysql_native_password 改为 caching_sha2_password。相应地,libmysqlclient 也使用 caching_sha2_password 作为默认的身份验证机制。

2024-07-04 13:49:19 978

原创 了解Java垃圾收集

Java 的垃圾收集是 Java 虚拟机 (JVM) 中的自动内存管理机制。它识别并丢弃程序不再使用的对象,释放内存并防止内存泄漏。这是一个关键功能,它允许 Java 程序避免手动分配和取消分配内存。Java 的垃圾收集机制是其内存管理的重要组成部分。通过理解垃圾收集的原理和不同垃圾收集器的特点,开发者可以更好地优化应用程序性能,避免常见的内存管理错误。合理选择和调优垃圾收集器,不仅能提升应用的响应速度和稳定性,还能在一定程度上简化开发过程中内存管理的复杂性。

2024-05-27 16:12:34 415

原创 我开源的H5商城2.0版本发布,强烈推荐

🏬waynboot-mall 是一套全部开源的 H5 商城项目,包含运营后台、H5 商城前台和后端接口三个项目。实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、加入购物车、结算下单、支付宝/微信支付/易支付对接、我的订单列表、商品评论等一系列功能 🔥。商城所有项目源码全部开源,绝无套路。

2024-05-20 14:02:48 1094

原创 我发现了字节OpenApi接口的bug!

在与火山云旗下云游戏产品的 OpenApi 接口对接过程中,我总共踩了三个坑。一是文档版本不是最新,二是官方提供的 OpenApi 示例 demo 过于简单,三是官方提供的验签代码没有考虑到 POST JSON 请求场景下的 contentType 设置问题。在这里也想给大家传个话,没有必要神话大厂,大厂也有 bug,大厂的产品也会服务中断。比如火山云旗下云游戏产品的 OpenApi 接口文档示例 demo 简陋,手动生成签名代码场景单一,覆盖不全等问题,最后就是竟然还返回了一个 null 给我!

2024-05-16 17:06:01 409

原创 2024年记住我功能该如何实现

本文给大家讲解了在使用 spring-session-redis 的项目中,如何通过延长用户 session 的有效期来达到记住我功能的一致效果。大家在学习本文后,也可以把记住我功能应用到自己的项目中,本文实例代码都在 newbeepro 项目中可以找到。想要获取newbeepro项目源码的同学可以关注我的公众号【程序员wayn】,回复 newbeeepro 即可获得。

2024-02-27 10:26:01 1239

原创 请立刻停止编写 Dockerfiles 并使用 docker init

几天前,Docker 推出了 docker init 的通用版本。我已经尝试过,发现它非常有用,迫不及待地想在日常生活中使用它。docker init 是一个命令行应用程序,可帮助初始化项目中的 Docker 资源。它根据项目的要求创建 Dockerfiles、docker-compose 文件和 .dockerignore 文件。这简化了为项目配置 Docker 的过程,节省时间并降低复杂性。

2024-02-27 10:24:32 1107

原创 我开源的 waynboot-mall 项目之框架选型详解

waynboot-mall 项目使用的框架和中间件都是目前的主流选择,它们已经很成熟、易用、市面上资料文档齐全,面对不同业务需求使用这些技术就已经足以。想要获取 waynboot-mall 项目地址以及配套资料的朋友可以在我的公众号【程序员wayn】回复 "wayn商城教学",即可获取。

2024-02-03 16:48:41 1086

原创 30秒自建幻兽帕鲁服务器,保姆级教程(持续更新)

本文将为各位帕鲁玩家介绍使用腾讯云轻量应用服务器 Lighthouse 部署幻兽帕鲁联机服务器的教程,无需登录服务器,仅需点击鼠标即可完成,最快只需 30 秒。

2024-01-31 16:23:18 1093

原创 7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

RibbitMQ 是一个基于 AMQP 协议的开源消息队列系统,具有高性能、高可用、高扩展等特点。通常作为在系统间传递消息的中间件,它可以实现异步处理、应用解耦、流量削峰等功能。RibbitMQ 的主要组件介绍如下,producter:生产者,创建消息,然后将消息发布(发送)到 RabbitMQ。channel: 信道,多路复用连接中的一条独立的双向数据流通道。

2024-01-30 15:03:27 972

原创 2024Java开发必读书籍推荐

作为一名 Java 工程师,持续学习和提升是非常重要的。阅读优秀的技术书籍可以帮助我们深入理解 Java 编程语言的核心概念和最佳实践。在本文中,我将向大家推荐一共 10 本 Java 工程师必读的经典书籍,旨在帮助大家扩展知识领域,提高编程技能和解决问题的能力。

2024-01-30 15:02:18 1053

原创 大数据技术发展史

大数据(Big Data)是指在传统数据处理方法难以处理的情况下,需要新的处理模式来具有更强的决策力、洞察发现力和过程优化能力的海量、高增长率和多样化的信息资产。Volume(容量):大数据的规模非常庞大,通常以 TB(太字节)、PB(拍字节)或 EB(艾字节)为单位,甚至更高。例如,2020 年全球互联网用户产生的数据量达到了 59ZB(泽字节),相当于每天产生 160 亿 GB 的数据。Velocity(速度):大数据的产生和处理速度非常快,需要实时或近实时的响应。

2024-01-24 11:23:39 1437

原创 我开源的 waynboot-mall 项目之本地开发指南

【wayn商城】项目我打算出一个实战教学专栏,包括系统设计、本地开发指南、技术选型、基础设施、模块划分、服务器部署、日志以及监控系统集成等内容。本项目的目标人群有大学生、初中级开发者、转全栈开发、缺少项目实战经验者,如果你也喜欢可以关注我,我会在后续持续更新。

2024-01-24 11:22:31 1096

原创 如何将开发环境的 Spring Boot 应用程序内存降低 40% 以上

总而言之,通过适当配置 JVM 和 Spring Boot,并理解内存消耗的原理,我们可以降低本地开发环境的内存消耗,提高工作效率。希望这些提示能对您有所帮助!关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2024-01-18 14:49:31 929

原创 Docker与Docker Compose入门:释放你的应用部署的威力

Dockerfile 是一个文本文件,用来描述如何从一个基础镜像(例如 ubuntu 或 alpine)构建出一个新的镜像,包括安装依赖、复制文件、设置环境变量、暴露端口等操作。使用 Dockerfile 可以让开发者清晰地记录应用程序的配置和依赖,以及保证应用程序在不同的环境中运行的一致性。# 基于 Java 镜像构建# 配置参数# 设置时区# 设置工作目录# 复制 jar 包到镜像里# 暴露端口# 配置启动命令FROM: 指定基础镜像,这里是基于开源的 Java 8 JRE 镜像。

2024-01-18 14:48:13 610

原创 【技术推荐】我愿称之为开源界最好用的行为验证码

tianai-captcha 简称 tac,是一款集成滑动类、点选类的一款行为验证码,以使用简单、安全性强、界面美观、接入方便,集好看、功能多、安全性强的一款开源行为验证码工具。tianai-captcha 目前支持的行为验证码类型滑块验证码旋转验证码滑动还原验证码文字点选验证码图标验证码语序验证码刮刮乐验证码后面会陆续支持市面上更多好玩的验证码玩法... 敬请期待在线文档:http://doc.captcha.tianai.cloud。

2024-01-11 10:53:51 1489

原创 Java 新技术:虚拟线程使用指南(二)

针对虚拟线程的使用,相信大家心里已经有了答案。在对虚拟线程需要限制并发数的场景,使用信号量即可。在虚拟线程中使用线程局部变量时要注意避免缓存昂贵的可重用对象。对于使用到 synchronized 同步块或者方法的虚拟线程,建议替换为 ReentrantLock,避免影响吞吐量。关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2024-01-11 10:52:58 618 1

原创 Java 21 神仙特性:虚拟线程使用指南(一)

针对虚拟线程的使用,相信大家心里已经有了答案。虚拟线程不同于平台线程,它非常廉价,Java 的设计者鼓励我们直接使用虚拟线程,而无需池化,也不必担心过多的虚拟现场会影响性能。事实上,虚拟现场就是为了解决同步阻塞 IO 对硬件的资源利用率不够高这一问题。

2023-12-28 00:31:33 1497

原创 2 分钟理解虚拟线程是什么

平台线程被实现为操作系统线程的简单包装器。平台线程上运行的 Java 代码,在其底层逻辑上,其实就是运行在操作系统的线程上,并且平台线程在其整个生命周期内都与操作系统线程一一对应。因此在 Java 项目中,可用平台线程的数量依赖于操作系统线程的数量。根据操作系统和 JVM 启动参数配置的不同,创建一个平台线程默认会消耗 1 MB 的空间。因此平台线程的资源相当宝贵,我们无法大量的创建平台线程。在 Java 21 虚拟线程出来以前,可能大家都没听说过平台线程,那么到底什么是平台线程嘞?

2023-12-28 00:30:57 911

原创 微服务开发,这10个点你要知道

本文为大家介绍了微服务架构中的 10 个最佳实践。包含1. 不使用微服务架构、2. 针对失败场景进行处理、3. 构建小型服务、4. 使用轻量级通信协议、5. 服务发现、6. 数据库隔离、7. 实施弹性模式、8. 服务监控以及链路追踪、9. 服务安全性、10.统一日志采集。说了这么多,其实还是希望大家结合自身项目背景,多多思考,不要为了使用微服务而去使用微服务,在已经使用了微服务架构中项目,能够结合上述最佳实践,加上自己对各个服务以及业务上的思考,去解决哪些已存在的问题。这样才算是真正学会了微服务。

2023-12-23 12:29:34 1085

原创 一文搞懂 java8 reduce操作

Java8 中有两大最为重要的改变,其一是 Lambda 表达式,另一个就是 Stream API 了。Stream 是 Java8 中处理集合的关键抽象概念,它将数据源流化后,可以执行非常复杂的查找、过滤和映射数据、排序、切片、聚合统计等操作。操作之后会产生一个新的流,而数据源则不会发生改变。在使用 Stream 操作的过程中,往往有三个步骤,

2023-12-23 12:28:20 1265

原创 java8 reduce操作

reduce 操作是一种通用的归约操作,它可以从一个元素序列中生成一个单一的结果,通过反复将一个组合操作应用到序列中的元素上。例如,我们可以使用 reduce 操作来计算一个整数序列的和,或者将一个字符串序列拼接成一个单一的字符串。

2023-12-20 16:30:55 1455

原创 Redis全文搜索教程之创建索引并关联源数据

在 RediSearch 中要查询已经存在的索引详情也是很简单的,官方提供了ft.info 索引名称的语法,用来打印索引详情。本文给大家用我的开源项目 newbee-mall-pro 作为样本,给大家细致的介绍了一番 RediSearch 在项目实战中关于索引创建与关联源数据的用法,希望大家喜欢。关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2023-12-20 16:28:31 1199

原创 Redis 也支持全文搜索 了?这也太强了

RediSearch 是一个 Redis 模块,为 Redis 提供查询、二级索引和全文搜索功能。要使用 RediSearch 的功能,我们需要要先声明一个 index(类似于 Elasticsearch 的索引)。然后就可以使用 RediSearch 的查询语言来查询该索引下的数据。RediSearch 内部使用压缩的倒排索引,所以可以已较低的内存占用来实现索引的快速构建。

2023-12-11 11:01:01 384

原创 微服务开发:断路器详解

您可能已经听说过我们在电子产品中发现的断路器。它的主要目的是什么?简单地说,在意想不到的情况下切断电流。与此相同,这种微服务模式也因其具有相同的性质而得名。这种模式在服务之间进行通信时出现。让我们来看一个简单的场景。假设我们有两个服务:服务 A 和 B。服务 A 正在调用服务 B(API 调用)以获取所需的一些信息。当服务 A 调用服务 B 时,如果服务 B 由于某些基础设施中断而关闭,会发生什么?服务 A 没有得到结果,它将因抛出异常而挂起。然后另一个请求来了,它也面临同样的情况。

2023-12-06 20:07:56 515

原创 耗时三年开源的H5商城,强烈推荐

🏬waynboot-mall 是一套全部开源的微商城项目,包含三个项目:运营后台、H5 商城和后端接口。实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、加入购物车、结算下单、支付宝/微信支付、订单列表、商品评论等一系列功能🔥。商城前后台项目源码全部开源,绝无套路。

2023-12-06 20:05:45 381

原创 提升 tomcat 性能的三个方式

Tomcat是一个流行的Java Web服务器,它可以运行Java Servlet和JavaServer Pages技术,为Web应用程序提供动态内容。Tomcat的性能优化是一个重要的话题,因为它直接影响了Web应用程序的响应速度和并发能力。本文将介绍提高Tomcat性能的三种方式,分别是调整Tomcat的线程池配置,使用连接池,和使用APR插件。

2023-12-04 09:36:16 501

原创 Tomcat 配合虚拟线程,一种新的编程体验

虚拟线程带给了现代程序员新的编程体验,使用阻塞编程也能开发出高性能应用程序,而避免了异步模型的编程复杂度,随着更多的框架接入虚拟线程,相信虚拟线程会在未来大放异彩。

2023-12-04 09:34:26 434

原创 糟了,数据库崩了,又好像没崩

2023 年某一天周末,新手程序员小明因为领导安排的一个活来到公司加班,小明三下五除二,按照领导要求写了一个跑批的数据落库任务在测试环境执行 ,突然间公司停电了,小明大惊,“糟了,MySQL 还在跑任务,会不会因为突然断电,导致数据库崩了”。这时候,傍边的同事云淡风清的说了一句,“没事,小明,MySQL 有一套预写日志机制就是应对这种情况的。你的落库任务启用了事务没,启用了的话,就等来电重新跑一下任务就行了。听了同事的话,小明悬着的心放了下来。“哦哦,我启用了事务,那我还是等周一来重新跑一遍”。

2023-12-03 16:31:10 90

原创 用户注册这样玩,保你平安

用户注册说简单是很简单,但是校验逻辑一定要做好!这是我的踩坑经验,现在我传授给你,希望能帮你平安🤝。关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2023-11-30 22:57:09 159

原创 HTTP 和 HTTPS 之间除了安全性区别外,还有哪些区别

关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2023-11-27 17:31:52 106

原创 null 不好,我真的推荐你使用 Optional

"Null 很糟糕." - Doug Lea。Doug Lea 是一位美国的计算机科学家,他是 Java 平台的并发和集合框架的主要设计者之一。他在 2014 年的一篇文章中说过:“Null sucks.”1,意思是 null 很糟糕。他认为 null 是一种不明确的表示,它既可以表示一个值不存在,也可以表示一个值未知,也可以表示一个值无效。这样就会导致很多逻辑错误和空指针异常,给程序员带来很多麻烦。他建议使用 Optional 类来封装可能为空的值,从而提高代码的可读性和健壮性。

2023-11-18 09:58:51 142

原创 Java 面试题之 Logback 打印日志是如何获取当前方法名称的?

本文有介绍四种方法获取当前执行方法名称,一般情况下大家使用异常对象的方法以及匿名内部类的方法都是可以的,它们的性能都 OK,代码书写复杂程度都大差不差。在 Java 9 以后推荐使用 Stack-Walking API,它的功能更为强大,与程序里的堆栈语意也跟为契合,性能 OK,并且还是线程安全的。关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2023-11-12 11:55:18 388

原创 Spring 缓存注解这样用,太香了!

其实我们可以通过自定义类继承提供的类后,重写方法来完成自定义缓存有效期的功能,代码如下,@Override// 解析 @Cacheable 注解的 value 属性用以单独设置有效期类逻辑如下,继承提供的类。重写方法。解析 name 参数,根据字符串进行分割,获取缓存 key 名称以及缓存有效期。重新设置缓存 key 名称以及缓存有效期。调用父类的方法来完成缓存写入。接着我们修改下类的方法用以使用类。代码如下,@Bean最后在使用@Cacheable注解时,在原有。

2023-11-09 16:23:29 336

原创 花了三年时间开发的开源项目,终于500 个 Star 了!快收藏

waynboot-mall 是一套全部开源的微商城项目,包含三个项目:基于 vue2 的运营后台、基于 vue2 的 H5 商城以及基于 Java 开发的后端 api 项目。这三个项目实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、购物车、结算下单、支付宝/微信支付、商品评论等一系列功能。商城前后台项目源码全部开源,绝无套路。

2023-11-04 22:09:01 478

原创 mybatis plus很好,但是我被它坑了!

给开发人员带来了很多便利,但是其中也有一些坑点,比如上文所提到得批量操作耗时问题,如果不注意的话,就有可能调入坑里,各位开发同学可以检查自己或者公司项目中jdbcurl是否缺失参数,加以改正,避免重复掉入这个坑里。关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

2023-10-31 11:31:32 278

easyui1.5.3

easyui是一种基于jQuery的用户界面插件集合。 easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。 使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。 easyui是个完美支持HTML5网页的完整框架。 easyui节省您网页开发的时间和规模。 easyui很简单但功能强大的。

2017-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除