- 博客(47)
- 收藏
- 关注
原创 BeanFactoryAware 在公司中的实际应用
通过使用 BeanFactoryAware,我们可以创建更加灵活的Bean,它们可以在运行时动态地选择和使用其他Bean。这对于需要根据条件动态调整行为的应用来说非常有用,同时也有助于保持代码的整洁和模块化,并且它可以完美的充当策略模式的环境类。
2024-08-14 14:57:37
639
1
原创 switch语句抛空指针异常问题?
语句是 Java 中用于多路分支的选择结构之一。它允许程序根据不同的条件执行不同的代码块。在 Java 8 之前和之后,是 Java 中一种有用的控制结构,用于实现多路分支的选择。类型之外的其他对象类型,只要这些对象类型实现了。值的情况,以及在 Java 8 之后对实现了。Java 8 引入了新的特性,使得。语句有一些重要的区别。在 Java 8 之前,
2024-08-14 11:06:17
597
原创 ApplicationEventPublisherAware 的实际应用
ApplicationEventPublisherAware、ApplicationEvent、ApplicationListener,这三个Spring的接口可以帮我们在项目中解决很多棘手的问题,它的主要优点:解耦、异步、可扩展性强、代码简单。
2024-08-14 10:27:03
600
原创 ApplicationContextAware在项目中的实际应用
是一个强大的工具,它可以让你在非 Spring 管理的类中访问 Spring 容器。通过实现这个接口,你可以轻松地获取的引用,并使用它来访问 Bean 实例或配置信息。这种机制提高了代码的灵活性和可扩展性,同时也使得非 Spring 管理的类能够更好地集成到 Spring 应用程序中。
2024-08-12 17:11:59
493
原创 解决 Mybatis-Plus 自动填充失效问题
类型,这符合 Java 8 及更高版本中引入的时间 API,提供了更好的日期和时间处理能力。这是使用 MyBatis-Plus 3.3.0 及以上版本中引入的更高级的填充策略。方法的目的就是删除记录,无论是物理删除还是逻辑删除,它都不会触发更新字段的自动填充逻辑。方法,这些方法更加类型安全,也提供了更灵活的填充选项。方法本质上是一个更新操作,它会触发自动填充逻辑,尤其是那些被标记为。这是 MyBatis-Plus 的设计决策,它将。视为不同的操作,即使在逻辑删除的情况下,方法,即使你正在使用逻辑删除(即,
2024-07-17 10:30:53
2501
原创 Mybatis-plus自动填充的使用以及常见问题
今天,咱们要聊一个既实用又有点“小调皮”的话题——MyBatis-Plus的自动填充功能!🤔 首先,咱们得明白,为啥需要自动填充?在使用MyBatis-Plus的自动填充功能时,确实可能会遇到自动填充不生效的问题。希望这篇博客能够吸引你的注意力,让你在轻松愉快的氛围中学习到MyBatis-Plus的自动填充功能!,这样Spring才能将其管理起来,并在需要时自动注入到MyBatis-Plus的上下文中。在某些版本的MyBatis-Plus中,可能存在已知的bug或限制,导致自动填充功能不生效。
2024-07-10 15:02:58
2098
原创 Redis设置密码保姆级教程
在Windows系统上设置Redis密码的过程与Linux系统类似,但需注意几个关键步骤以确保正确配置。配置文件中的语法错误或格式不正确,导致Redis无法正确解析配置文件,进而忽略了密码设置。Redis服务启动时没有指定配置文件,或者指定的配置文件路径错误,导致。配置文件在Redis服务启动后被意外修改或覆盖,导致密码设置失效。:为了确认连接成功且密码已生效,可以尝试执行一个简单的命令,如。:在Redis命令行中,尝试执行任何命令前,你需要先通过。:首先,找到Redis的安装目录,并定位到。
2024-07-10 14:47:06
1562
原创 SpringBoot3整合Redis保姆级教程
当SpringBoot项目需要整合Redis时,第一步肯定是先导入Redis的相关依赖(其实第一步应该先下载Redis服务,这里以本地已经安装好Redis为基础),然后再进行Redis相关配置。搞好以后,进行测试,没问题OK,有问题处理。下面就详细讲解SpringBot整合Redis的最基础过程(这里以SpringBoot3.1.5 + JDK17进行演示,其实和3以下的版本没什么区别)。本文涉及知识点:@PropertySource、@Configuration、@Bean、Redis、Lombok。
2024-07-10 14:39:07
2256
原创 RocketMQ安装与启动,系统:Linux/Windows
Windows 下安装 RocketMQ 和 Linux 的步骤基本一致,差别就是 Windows 系统不需要有上面的第二步,然后就是启动命令不同,其他步骤参考 Linux 安装步骤即可。
2024-07-10 14:32:11
458
原创 一篇文章,让你再也不会为了Spring Boot读取配置的问题烦恼!
Spring Boot读取配置文件的多种方法的具体使用和常见问题解决方案,包含Environment、@Value、@ConfigurationProperties、@EnableConfigurationProperties、@PropertySources等。
2024-07-09 16:52:05
1157
原创 学会Spring Boot的参数校验又可以少些十几行代码,真好用!
在开发Web应用时,处理用户输入是不可避免的一环。然而,用户输入往往充满不确定性,可能是格式不正确、类型不匹配,甚至包含恶意内容。为了确保应用的稳定性和安全性,对输入参数进行有效校验显得尤为重要。Spring Boot,作为当前最流行的Java开发框架之一,通过其丰富的特性和集成的库,为我们提供了一套高效、灵活的参数校验机制。
2024-07-02 17:34:10
617
原创 2024最新版Redis常见面试题包含详细讲解
先来看下面这张图:布隆过滤器的底层是一个bitmap,也就是一个数组,每个下标只存储0或1,默认初始化时全部都为0。可以在其中定义多个不同的哈希函数对要存储的数据进行计算,不同的哈希函数计算出的结果作为数组的下标将其对应的值改为1。这样不管是存数据还是查询数据都可以通过哈希计算得到对应下标然后根据是否为1判断是否存在,如果有一个值不为1则就是不存在。但是,这种机制也是会出现一定的误判率的,具体看下面这张图:
2024-06-28 11:25:32
1949
原创 网络世界的“握手”与“告别”:揭秘TCP的三次握手与四次挥手
在网络世界中,数据的传输就像是一场精心编排的舞蹈,而TCP(Transmission Control Protocol,传输控制协议)则是这场舞蹈的指挥家。那么,在这背后,TCP是如何通过“三次握手”和“四次挥手”来确保数据的稳定传输和优雅告别的呢?上面这个流程就不用画图表示了,其实TCP的三次握手和四次挥手很好理解,这些动作最终都是为了保证数据在传输过程中的安全性,它们通过精确的序列号和确认机制,确保了数据在传输过程中的稳定性和安全性。三次握手懂了,但是四次挥手还是没懂?这就是TCP四次挥手的作用。
2024-06-28 11:14:00
411
原创 这样解释 TCP_IP 真的很好理解
所以,TCP/IP就像是你在这个城市(计算机网络)中送包裹(数据)所依赖的交通规则和交通工具。IP负责规划路线,TCP负责安全、可靠地送达包裹。现在,你想从你家(你的计算机)送一个包裹(数据)到你朋友家(另一台计算机)。但城市很大,你无法直接把包裹送到你朋友家,你需要借助一些交通工具和规则来确保包裹能够安全、准确地送达。想象一下,你住在一个大城市里,这个城市就是你的计算机网络世界。在这个城市中,有许多房子(代表不同的计算机),这些房子之间由各种道路和交通设施连接起来(代表网络的物理连接)。
2024-06-28 11:00:36
267
原创 换种方式讲Http/Https的区别真的很容易懂
HTTP 和 HTTPS 就像网络上的两条道路,虽然它们的目的地相同,但行驶的方式和安全性却截然不同。HTTP 就像一条开放的公路,虽然方便但存在安全隐患;而 HTTPS 则像是一条封闭的隧道,虽然需要一些额外的步骤和成本,但却能为我们提供更高的安全保障。因此,在进行网络传输时,我们应该尽量选择 HTTPS 这条“暗道”,以确保我们的数据安全无虞。
2024-06-28 10:59:15
397
原创 SpringBoot3整合日志框架教程(附录Log4j2的常用标签大全)
手把手教你SpringBoot整合日志框架,附录Log4j2的常用标签以及属性说明,简洁明了快速上手。
2024-06-25 10:49:02
1821
原创 SpringBoot 实现全局异常处理
验证 BusinessServiceException 异常也很简单,我们将上面 UserEntity 的参数补全,但是代码中为空会抛错的那个两个参数我们不传,看下会有什么结果。请求结果:这里同样是我们自定义的返回对象,并不是SpringBoot默认的500页面,所以验证成功。
2024-06-20 15:44:44
1457
原创 SpringBoot 统计接口调用耗时的多种方式
在实际开发中,了解项目中接口的响应时间是必不可少的事情。SpringBoot 项目支持监听接口的功能也不止一个,接下来我们分别以 AOP、ApplicationListener、Tomcat 三个方面去实现三种不同的监听接口响应时间的操作。
2024-06-19 17:58:05
3826
原创 扩展知识:RocketMQ 如何开启 ACL 验证
RocketMQ 在 4.4.0 版本开始支持 ACL 功能,ACL 验证的主要作用就是保证消息的安全性,实现权限控制功能,比如控制可以发送和订阅消息的群体,如某些主题只能被订阅,某些主题只有指定的IP,或者只有携带账号密码才可以订阅和发布等。对于第二个账户rocketmq2,由于设置了admin: true,所以它将拥有对所有资源和主题的访问权限,无论是否在topicPerms或groupPerms中明确指定了权限。同时,它的IP白名单被限制为192.168.1.*。
2024-06-11 17:51:16
1709
原创 Linux/Windows 安装 RocketMQ 详细图文教程!
Windows 下安装 RocketMQ 和 Linux 的步骤基本一致,差别就是 Windows 系统不需要有上面的第二步,然后就是启动命令不同,其他步骤参考 Linux 安装步骤即可。
2024-06-11 17:49:44
531
原创 SpringCloud 组件之 Eureka 详解及实战
Eureka是Netflix公司开发的服务发现框架,SpringCloud将其集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka在微服务架构中扮演了关键角色,帮助解决服务之间的通信问题。具体来说,Eureka通过服务注册与发现的机制,使得每个注册到Eureka的服务都可以在Eureka上找到其他注册的服务。服务提供者可以将自己的服务注册到Eureka服务器中,而服务消费者则可以从Eureka服务器中获取可用的服务实例列表。
2024-06-03 09:36:18
634
原创 RocketMQ 学习笔记及项目实战
什么是 RocketMQ?RocketMQ 是众多 MQ 中的一种,属于Alibaba旗下,使用JAVA语言开发的一款消息中间件,具有高性能、高可靠、高实时、分布式特点。MQ的全称是 Message Queue 消息队列,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。RocketMQ的重要组成部分现实生活中的邮政系统要正常运行,离不开下面这四个角色, 一是发信者, 二是收信者, 三是负责暂存、传输的邮局, 四是负责协调各个地方邮局的管
2024-05-30 17:47:06
1067
原创 聊一聊 ThreadLocal 和 volatile
但是我不希望把它分析的太复杂,当我看完源码后对ThreadLocal的总结就一句话:TheadLocal 内部维护着每个线程所对应的值,这个值通过 ThreadLocalMap(和 HashMap 类似) 存放,键就是线程本身,值就是存放的数据。TheadLocal 的意思是线程本地变量,可以将它理解成一种容器,当将数据放进TheadLocal容器后,当每一个线程访问它的时候都会拷贝一份数据到自己本地,各自对这个数据进行读写操作,线程之间互不影响,完全隔离。如何避免这种风险呢?看到这个结果有没有发现什么?
2024-05-30 17:31:17
807
原创 Stream流和For循环到底哪个更快
- 1 万数据以内,使用 for 循环的效率明显要比 Stream 流高一些,并且这个数据量不建议使用并行流。- 10 万数据左右,使用 Stream 流的效率可能比 for 循环要高一些,取决于使用 Stream 中什么函数,比如专门为求范围提供的 skip、limit 进行范围筛选的效率就要比 filter 的效率更好一些,而将多个条件分开放入 filter 要比将条件一次性写在一个 filter 中效率更好一些。并且这个数据量也不建议使用并行流。- 100 万数据左右,使用 Stream 流的效率
2024-05-15 14:59:10
1431
1
原创 IDEA更新本地代码丢失问题
提交代码前,更新代码时执行Update Project操作。执行完该操作会发现IDEA没有任何提示,默认覆盖了你本地还未提交的代码,本地呕心沥血写的代码瞬间人间蒸发,一瞬间想骂娘。切换分支时执行Checkout操作,和问题1基本相同,本地代码在执行完这一操作也会人间蒸发。
2023-12-10 14:38:37
4311
原创 IntelliJ IDEA 常用设置大全
本文都是以IntelliJ IDEA 2022.3.x 版本举例,其他版本设置的位置可能不同,但是设置的属性名应该都是一样的,可做参考。IntelliJ IDEA,被誉为最聪明的Java集成开发环境(Integrated Development Environment,简称IDE),自2001年以来,它一直在为开发者们提供卓越的工具和服务。
2023-12-01 14:32:19
732
原创 使用Jackson转JSON时自定义转换规则
利用Jackson自定义序列化规则,使对象转JSON时将为null的属性替换为空字符串,并自定义时间格式。
2023-11-09 16:27:49
299
原创 SpringBoot整合Redis笔记
当SpringBoot项目需要整合Redis时,第一步肯定是先导入Redis的相关依赖(其实第一步应该先下载Redis服务,这里以本地已经安装好Redis为基础),然后再进行Redis相关配置。搞好以后,进行测试,没问题OK,有问题处理。下面就详细讲解SpringBot整合Redis的最基础过程(这里以SpringBoot3.1.5 + JDK17进行演示,其实和3以下的版本没什么区别)。本文涉及知识点:@PropertySource、@Configuration、@Bean、Redis、Lombok。
2023-11-08 17:07:48
444
1
原创 Java 反射之实现 Map 转 Bean 操作
闲来无事突然想温习一下 java 的反射机制,于是就写了这篇通过反射实现集合转对象的底层操作。先说说学习反射机制都有哪些好处,首先大部分的框架源码多多少少都使用到了 java 反射,所以掌握以后可以增强我们阅读源码的能力。其次呢在项目中我们也可以写一些简单的工具类方法,比如 JSON 转 Bean,Copy Bean 等操作,这样的好处是我们可以针对业务逻辑去进行特殊处理,改起来也更加的方便。当然,别人写好的工具类,功能齐全,使用方便简单,相对来说还是更香的,比如常用的阿里提供的工具类、HuTool 等
2023-05-23 11:00:20
2121
原创 设计模式之工厂模式
该篇文章详细讲解了工厂模式的三种实现方式以及各自的优缺点和使用场景。通过代码举例,图文讲解让你轻松的掌握工厂设计模式,如果你感觉可以的话希望多多支持!工厂模式分为三种实现方式,简单工厂模式、工厂方法模式、抽象工厂模式;我们经常说到的工厂模式通常是指工厂方法模式,并且也是被频繁使用的......
2023-05-23 09:58:07
62
原创 设计模式之单例模式
介绍单例模式的几种实现方式,以及每一种实现方式所存在的隐患和解决方案,该文章可以很好很全面的学习单例模式,有丰富的代码例子进行实战讲解。
2023-05-22 17:38:57
80
原创 接口防重复提交注解实现
该文章通过自定义注解来实现防止接口的重复提交需求,解决数据库出现多条相同数据的问题。文章内容简短详细,不想阅读直接复制代码即可完成!
2023-05-22 14:25:46
700
原创 解决配置环境变量时只显示一行问题
相信有很多人都遇到过配置环境变量时变量值从多行显示变为了一行显示,如下图一样,这让人很苦恼,添加新的环境路径非常的不方便,接下来我就来讲解一下解决这个问题的方法。不知道大家有没有注意到一个问题,我们变量值的第一个路径是一个相对路径,%里面的值是我们自己定义的,然后用%自定义名称%的方式去获取到自定义名称所对应的路径。之所以你的环境变量的打开后只显示一行,问题就在首个相对路径上,现在我们把变量值第一个位置的相对路径换为绝对路径看下效果。如果这篇文章帮你解决了这个问题,麻烦留下你的一键三连多多支持!
2023-03-08 17:03:57
3497
1
原创 JVM 内存模型详解
该文章对 JVM 的原理进行了深入的分析,通过图片加文本的形式详细的说明 JVM 内存模型的各个模块作用,包括双亲委派机制,以及常见的垃圾回收算法、垃圾收集器。
2023-02-14 16:31:01
764
原创 介绍“==”和equals的区别
本文主要介绍 Java 基础中经常遇到的 “==“” 和 equals 的实现原理以及它们的区别,和在项目中我们应该怎么合理的去运用。
2023-01-06 15:23:21
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人