- 博客(142)
- 收藏
- 关注
原创 Springboot 初始化操作
在使用Springboot过程中,或多或少我们会遇到在Springboot启动时要初始化类,或者加载文件之类的一些操作
2024-04-18 09:00:00 692
原创 别再混淆了!一文带你搞懂@Valid和@Validated的区别
本文介绍了@Valid注解和@Validated注解的不同,同时也进一步介绍了Springboot 参数校验的使用。
2024-03-25 09:06:19 1211
原创 初探Springboot 参数校验
工作中我们经常会遇到验证字段是否必填,或者字段的值是否在给定范围之内等等类似的问题,如果说是一两个字段的验证还好,验证的字段很多的话,代码就会被大量的if语句包围。通常来说,这些关于字段的判断应该和业务逻辑分开来,可能我们想到的第一个解决方案就是通过AOP,这也能解决我们的问题的。但实际上大可不必,作为一个成熟的语言,Java已经给我们提供解决方案了
2024-03-19 23:09:16 938
原创 SpringBoot 条件注解一览无余
条件注解是一种基于条件的注解,用于在应用程序中根据特定条件自动配置或排除某些组件。条件注解可以根据应用程序的环境、配置属性或其他条件来控制某些组件的注册和初始化。
2024-02-20 08:30:00 834
原创 Java热插拔技术之SPI
总的来说,Java SPI 的实现原理是通过类加载器动态加载配置文件,再利用反射机制实例化具体的服务提供者,并将其注入到应用程序中供服务消费者使用。
2024-01-16 08:30:00 841
原创 从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景
BIO、NIO和AIO是Java编程语言中用于处理输入输出(IO)操作的三种不同的机制,它们分别代表同步阻塞I/O,同步非阻塞I/O和异步非阻塞I/O。
2023-11-13 09:03:28 474
原创 seata server 1.6版本安装及配置
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
2023-08-14 09:06:31 571
原创 【Nacos源码系列】Nacos服务发现的原理
服务发现是一种机制,用于在分布式系统中动态地查找和识别可用的服务实例。它解决了微服务架构中服务之间的通信和调用的核心问题。
2023-07-20 08:15:00 327
原创 【Nacos源码系列】服务注册的原理
Nacos是一个基于云原生的动态服务发现、配置管理和服务治理平台,由阿里巴巴开源。它提供了服务注册与发现、配置管理、动态DNS、流量管理、服务降级、负载均衡、限流、路由管理等一系列核心功能,可以帮助企业构建弹性可扩展的微服务架构。
2023-06-20 08:56:54 1166
原创 原理这就是索引下推呀
索引下推(Index Condition Pushdown,简称ICP)是 MySQL 5.6 开始引入的一项优化技术,可以在执行查询时将过滤条件下推到存储引擎层。
2023-04-25 17:25:02 1137
原创 【每日一题】缓存穿透、缓存击穿、缓存雪崩及解决方案
缓存是许多现代Web应用程序的重要组成部分,因为它可以大大提高系统的性能和可靠性。然而,缓存也存在一些潜在的问题,如缓存穿透、缓存击穿和缓存雪崩,这些问题可能导致系统性能下降甚至宕机。
2023-02-22 08:45:00 275
原创 Hotspot垃圾收集器一览
上篇文章我们介绍了如何判断对象是否为垃圾,有垃圾就要清理,清理就需要 垃圾收集器。垃圾收集器(Garbage Collector)是垃圾收集GC的实现,根据是否分代收集可将垃圾收集器分为两种类型:分代收集和不分代收集。Serial垃圾收集器是最简单的垃圾回收器的实现,同时它也是最古老的垃圾回收器,在jdk 1.3之前是HotSpot虚拟机新生代收集器的唯一选择。Serial翻译成中文的意思是“串行的”,顾名思义Serial垃圾收集器就是一个单线程的垃圾回收器,它的这个串行指的是当它要进行垃圾回收时,其他所有
2022-12-08 09:00:00 368
原创 如何判断对象是否是垃圾
本文主要介绍了JVM是通过可达性分析算法来判断对象是否为可回收对象,同时介绍了哪些对象或者是类可作为可达性分析算法的GC Root,最后介绍了对象在Finalize方法中的回收过程和方法区的回收。想学习关于JVM的文章可关注我,会持续更新。参考书籍:《深入了解JVM虚拟机》
2022-12-01 09:15:00 827
原创 JVM垃圾回收算法
垃圾回收算法没有好坏之分,只是应用场景不同。老年代存活对象比较多,所以一般采用标记-清除和标记-整理算法,相反,新生代存活对象比较少,所以一般采用复制算法。根据不同的区域的特征采用不同的算法,这就是分代收集理论。
2022-11-29 09:00:00 276
原创 通过工具和字节码带你深入理解运行时数据区
本文通过JHSDB工具和字节码层面来更深入的了解JVM运行时数据区,对于JHSDB工具和字节码也只是一个简单的使用和说明,感兴趣的可以再深入了解一下。
2022-11-18 09:15:00 168
原创 Java中的堆和栈
栈和堆是Java程序在代码执行期间使用的两个区域。除了这两个之外,还有其他内存区域,如方法区域、寄存器、本地方法域等等。每种区域在Java应用程序中都有其特定的用途。但是,从程序员的角度来看,栈和堆是JVM必须理解的区域。
2022-11-10 09:15:00 8095
原创 canal 安装及入门教程
canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,目前主要支持了mysql。
2022-11-08 09:15:00 779
原创 Spring Cloud Alibaba Sentinel集成Spring Cloud Gateway
本篇文章我们只是简单的介绍和使用了 Sentinel集成Spring Cloud Gateway,算是对 Sentinel网关限流有了一个简单的认识,想认识的更多可以去官网看看。
2022-11-04 09:15:00 542
原创 关于rocketmq 中日志文件路径的配置
rocketmq 中不管是服务端还是客户端的日志配置都是在类中,通过ClientLogger可以发现rocketmq日志的参数都是加入到系统属性中去的,所以我们只要修改对应的系统属性就可以修改rocketmq的日志配置了。感兴趣的可以去看看源码探索更多的可能。
2022-10-31 09:00:00 8546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人