自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 【@Bean和@component的区别】

Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册成Spring应用上下文中的bean。通常方法体包含了最终产生bean实例的逻辑。Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。Component通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。Bean注解通常是我们在标有该注解的方法中定义产生这个bean的逻辑。Component用在类上,Bean用在方法上。

2024-06-15 22:18:03 135

原创 【IOC的注入方式 】

控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术。由容器控制程序之间的关系,而不是由代码直接控制由于控制权由代码转向了容器,所以称为反转对象与对象之间的关系可以简单的理解为对象之间的依赖关系:依赖关系:在 A 类需要类 B 的一个实例来进行某些操作,比如在类 A 的方法中需要调用类 B 的方法来完成功能,叫做 A 类依赖于B 类。一个需要特定的依赖的组件一般会涉及一个依赖对象,在 IOC 的概念中叫做目标 (target)。

2024-06-15 22:13:18 612

原创 【rabbitmq的重复消费问题】

消息重复消费是分布式消息传递系统常见的一个问题。:设计消费者的消息处理逻辑,确保即使消息被多次消费也不会对系统造成不良影响。:在消息或处理逻辑中使用唯一标识符,并在消费者中实现去重检查。:通过手动确认(acknowledgment)消息,可以控制消费者何时确认消息,如果处理失败可以选择重新入队或者丢弃。:RabbitMQ的消息属性messageId或者可以作为消息的唯一标识符。:使用RabbitMQ的事务功能或者发布确认保证消息被成功发送。

2024-06-14 19:35:32 307

原创 【rabbitmq的可靠性传输】

生产者开启确认 comfirm 机制MQ开启 RabbitMQ 持久化消费者关闭RabbitMQ 自动 ack 确认。

2024-06-14 19:32:45 277

原创 【Redis 内存淘汰】

Redis是基于内存存储,常用于数据的缓存,所以Redis提供了对键的过期时间的设置,实现了几种淘汰机制便于适应各种场景。设置过期时间我们可以在设置键时设置expire time,也可以在运行时给存在的键设置剩余的生存时间,不设置则默认为-1,设置为-1时表示永久存储。

2024-06-13 09:03:28 545

原创 【redis过期删除】

redis的键可以设置过期时间,但是并不是每个键一到过期时间就会立即删除,redis不可能给每个设置过期时间的key上添加一个定时器来监视是否过期,CPU根本承受不了如此多的定时线程。首先客户端在尝试访问某个key的时候,redis会检查是否过期,如果过期则删除,但是有些key是不会被访问到的,redis的定期删除则会进行扫描并删除过期的key。在进行LRU/LFU/TTL淘汰策略时,并不是那么准确,可以通过采样率来进行设置其准确度,默认是5,即随机选出5个key,然后淘汰掉里面最近最少使用的key。

2024-06-13 09:01:40 949

原创 【redis的基本数据类型】

压缩列表的基本信息包括压缩列表的大小,压缩列表的长度以及最后一个entry的偏移,之所以要有这个偏移,是为了找到最后一个entry,而每个entry都记录上一个元素的大小,通过计算就知道上一个entry的地址,这样方便的从后向前进行遍历。的结构,其分为两部分,8字节的Redis对象元数据信息,8字节的指针,其中Redis对象的元数据信息存储了类型的LRU信息,真正的编码格式等等,而如果字符串存储的是数字类型,则复用了8字节的指针的位置。的操作,但是当列表的元素非常少的时候,其内部使用。

2024-06-13 09:00:30 501

原创 【Redis 分布式锁】

不同的进程需要以互斥的方式来访问共享资源,这里实现互斥就是分布式锁。简单来说就是:同一时间只有一个客户端对共享资源操作。举个实际例子,抢购茅台,如果不加锁就会发生超卖的事故。分布式锁实现方式有很多中, mysql,zookeeper,redis,本文主要讲 redis 的实现方式。

2024-06-13 08:57:19 714

原创 【Java基础】

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易 用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对 象理论,允许程序员以优雅的思维方式进行复杂的编程。所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上 运行。实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。字节码。

2024-06-12 23:58:29 817

原创 【基于Redis的分布式锁实现】

本篇文章主要介绍基于Redis的分布式锁实现到底是怎么一回事,其中参考了许多大佬写的文章,算是对分布式锁做一个总结自定义一个注解,被注解的方法会执行获取分布式锁的逻辑@Inherited/*** 业务键* @return*//*** 锁的过期秒数,默认是5秒* @return*//*** 尝试加锁,最多等待时间* @return*//*** 锁的超时时间单位* @return*/

2024-06-12 23:53:48 1065

原创 【SpringBoot集成Spring Security】

和都是安全框架,为Java应用程序提供身份认证和授权。项目引入Spring Security依赖自定义Security核心配置类继承账号密码配置登录处理忽略拦截。

2024-06-11 23:59:53 177

原创 【常用Linux 命令】

Linux 的命令确实非常多,然而熟悉 Linux 的人从来不会因为 Linux 的命令太多而烦恼。因为我们仅仅只需要掌握常用命令,就完全可以驾驭 Linux。接下来,让我们一起来看看都有那些常用的 Linux 命令吧!

2024-06-11 23:56:24 965

原创 【Spring Boot 3 集成 Druid 连接池详解】

通过本文的介绍,你学会了如何在Spring Boot 3项目中配置数据源,集成Druid连接池,从而提高数据库连接管理的效率。Druid连接池的监控和管理功能可以为你的应用提供更好的性能和可维护性。

2024-06-11 23:52:47 1032

原创 【Spring Boot拦截器】

拦截器(Interceptor)同Filter 过滤器一样,它俩都是面向切面编程——AOP 的具体实现(AOP切面编程只是一种编程思想而已)。你可以使用 Interceptor 来执行某些任务,例如在Controller处理请求之前编写日志,添加或更新配置…在Spring中,当请求发送到Controller时,在被Controller处理之前,它必须经过(0或多个)。是一个非常类似于的概念。如果你需要自定义的话必须实现接口或继承方法在请求处理之前被调用。

2024-06-10 23:51:58 970

原创 【Springboot日志】

日志,是开发中熟悉又陌生的伙伴,熟悉是因为我们经常会在各种场合打印日志,陌生是因为大部分时候我们都不太关心日志是怎么打印出来的,因为打印一条日志,在我们看来是一件太平常不过的事情了,特别是在宇宙第一框架Springboot的加持下,日志打印是怎么工作的就更没人关注了。但是了解日志框架怎么工作,以及学会Springboot怎么和Log4j2或Logback等日志框架集成,对我们扩展日志功能以及优雅打印日志大有好处,甚至在有些场景,还能通过调整日志的打印策略来提升我们的系统吞吐量。所以本文将以。

2024-06-10 23:47:12 910

原创 【非Controller控制层的参数校验】

Springboot的一些使用技巧

2024-06-09 15:43:48 1054

原创 【SQL语句的1=1问题】

1=1”在SQL语句中可能看起来无害,但实际上它是一种不良的编程习惯,可能会导致性能下降。就像在做饭时不会无缘无故地多加调料一样,我们在编写SQL语句时也应该避免添加无意义的条件。每一行代码都应该有它存在的理由,不要让人和数据库浪费时间在不必要的事情上。

2024-06-09 15:39:49 869

空空如也

空空如也

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

TA关注的人

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