自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 还在写普通的CRUD代码?缓存数据冷热分离、缓存击穿、缓存穿透、双写/读写不一致、服务器雪崩你了解吗?

你是否还在写普通的CRUD代码?是否还在苦恼如何提高自己的代码水平?今天,我们将深入探讨一些高级的缓存策略和数据一致性问题,通过实际案例和解决方案,帮助大家写出更加健壮和高效的代码。

2024-06-29 15:42:47 548

原创 【总结】在SpringBoot项目中如何动态切换数据源、数据库?(可直接CV)

本文参考若依源码,介绍了如何在SpringBoot项目中使用AOP和自定义注解实现MySQL主从数据库的动态切换,当从库故障时,能自动切换到主库,确保服务的高可用性。如果服务器搭建的是一主多从多个mysql数据源,主服务器用来读。从服务器用来写。此时你在代码层面用注解指定了一个增删改方法到从数据源,但是碰巧此时从数据源失效了,那么就会自动的切换到其它服务器。

2024-06-24 18:42:31 845

原创 【面试题】Spring常见面试题整理2024(全是干货!!!)

IOC容器初始化阶段:根据程序里面定义XML、注解等Bean的声明方式,通过解析和加载后生成的BeanDefinition,然后把BeanDefinition存入到一个Map集合里面,完成IOC的初始化阶段。完成Bean的初始化和DI:通过反射对一个没有设置Lazy-init属性的单例Bean进行初始化,然后进行依赖注入,将属性注入到Bean对象中。

2024-06-19 10:40:38 1066

原创 【面试题】谈谈你对Spring的IOC和AOP的理解?

Spring的IOC(Inverse of Control,控制反转)是Spring框架的一个核心概念,它是一种设计原则,用于实现软件组件之间的解耦。AOP(Aspect-Oriented Programming,面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性。

2024-06-19 10:40:17 718

原创 【面试题】MySQL常见面试题总结

B+树是基于B树和叶子节点顺序访问指针进行实现,它具有B树的平衡性,并且通过顺序访问指针来提高区间查询的性能。进行查找操作时,首先在根节点进行二分查找,找到一个key所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出key所对应的data。插入、删除操作会破坏平衡树的平衡性,因此在插入删除操作之后,需要对树进行一个分裂、合并、旋转等操作来维护平衡性。

2024-06-16 10:18:05 931

原创 面试题分享之JVM篇

学过Java的小伙伴肯定对JVM(Java虚拟机)多多少少了解一点,Java的“一次编译,到处运行”的特点就离不开他。今天我们就通过面试题去进一步的了解它。🌈。

2024-06-12 18:18:36 1160 1

原创 【学习总结】SpringBoot中使用单例模式+ScheduledExecutorService实现异步多线程任务(若依源码学习)

最近在学习若依这个开源项目,发现他记录登录日志的时候使用了异步线程去记录日志,觉得这个方案也挺不错的,在此学习记录下来,以后在工作中也能提供一种思路,其他小伙伴如果有觉得不错的方案也可以在评论区里留言,大家一起探讨一下🍭

2024-06-11 10:56:03 471

原创 【设计模式】之代理模式(两种)

今天继续给大家介绍23种设计模式中的代理模式,熟悉Spring的小伙伴都知道,Aop使用的就是代理模式,所以,代理模式还是非常重要的,在工作中用的也是非常的多。🌈

2024-05-10 10:33:02 988 1

原创 【设计模式】之适配器模式

今天继续给大家介绍23种设计模式中的适配器模式,这个模式相比于其他模式比较好理解,我们一起来学习一下吧。🌈

2024-05-09 10:59:35 445 1

原创 【设计模式】之观察者模式

今天给大家介绍另一种设计模式--观察者模式,有了解webscoket实现原理的小伙伴应该对这个设计模式不陌生。不清楚也没关系,今天就给大家介绍一下这个设计模式。🌈

2024-05-08 10:34:20 817 2

原创 【设计模式实战】用三种设计模式去优化if-else屎山代码!!!

我们之前也学习了不少设计模式,今天给大家介绍一个案例,帮助大家更加熟悉设计模式,并能够在自己写项目的时候能够下意识的使用设计模式,避免写出屎山代码。🌈。

2024-05-07 18:00:22 693 1

原创 【设计模式】之装饰器模式

今天给大家介绍23种设计模式中的装饰器模式。🌈

2024-05-04 18:01:04 1128 1

原创 面试题分享之Java并发篇

今天给小伙伴们分享我整理的关于Java并发的一些常见面试题,这期涉及到线程的一些知识,所以要求小伙伴有一些操作系统的知识,不清楚也不要紧,也不是什么很难的知识点。🌈

2024-05-04 16:49:19 896 1

原创 一个注解完美实现分布式锁(AOP)

学习过Spring的小伙伴都知道AOP的强大,本文将通过Redisson结合AOP,仅需一个注解就能实现分布式锁。🍭

2024-05-03 18:23:29 1066

原创 面试题分享之Java集合篇(三)

哈喽,小伙伴们,昨天我们见识了HaspMap常见的面试题,如:HaspMap的get、put、resize方法的原理等等,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈

2024-05-03 16:40:33 1116

原创 【设计模式】之工厂模式(三种)

今天给大家介绍23种设计模式中的工厂模式,学过Spring的小伙伴应该不陌生,今天给大家详细介绍一下它。🌈

2024-05-03 14:52:26 1568

原创 【学习总结】使用分布式锁和乐观锁解决“超卖”问题

在商品库存管理中,超卖是指销售数量超过了实际库存数量的情况。这在电商和其他零售业务中是一个常见的问题。使用数据库的乐观锁或悲观锁来确保在读取和更新库存量时的数据一致性。这可以确保在并发操作中,只有一个操作可以成功修改库存。使用如Redis这样的内存数据库来缓存库存数据,从而加速读写操作。但需要注意的是,缓存和数据库之间的数据同步问题。如果你的应用是分布式的,考虑使用分布式锁来确保跨多个实例的库存操作的原子性。使用消息队列来管理库存操作,限制并发的库存更新请求。

2024-05-01 15:51:17 1398

原创 【设计模式】之单例模式

今天给大家介绍23种设计模式中的单例模式,也是大家比较常见的一种设计模式,但是,里面的一些细节还是有很多人会忽略的。🌈

2024-04-30 15:12:52 1224

原创 面试题分享之Java集合篇(二)

哈喽,小伙伴们,昨天我们见识了一些集合常见的面试题,如:List为什么实现RandomAccess接口、HashSet实现原理等等,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈

2024-04-30 14:19:16 804

原创 SpringBoot优雅地定制JSON响应数据

最近在学习过程中发现了Jackson库的@JsonView也可以改变JSON的输出结构,并且可以更加精细的控制,我平时一般都会定义一些DTO去封装响应数据,使用这种方法可以不用创建DTO,更加优雅且高效的方式来实现。🌈

2024-04-29 21:48:49 858 2

原创 【设计模式】之模板方法模式

今天给大家介绍23种设计模式中的模板方法模式,这个设计模式在Spring框架中还是挺常见的,手写Spring源码的小伙伴必须要掌握的设计模式之一,文章结构还是经典的三连问,是什么?为什么?怎么用?🌈

2024-04-29 11:23:05 1204

原创 【学习总结】封装自定义响应类和全局异常处理

最近整理一下自己平时写项目的一些工具类,在这里分享给小伙伴们,如果有喜欢的自行复制即可,开箱即用。😊@Setter@Getter//成功码.public static final String SUCCESS_MESSAGE = "操作成功";//成功信息.//错误码.public static final String ERROR_MESSAGE = "系统异常";//错误信息.//状态吗!=200 说明有错误.

2024-04-28 22:01:16 210

原创 【学习总结】使Aop实现自定义日志注解

我们在平时开发时,往往需要添加各种各样的日志记录,造成业务代码穿插非业务代码,使代码臃肿,业务逻辑不清晰。为了解决这些问题我们可以使用面向切面(AOP)编程的思想,将非业务代码剥离出来。面向切面编程(AOP)是一种重要的编程思想,通过将横切关注点从核心业务逻辑中分离出来,可以提高代码的可维护性、可复用性和可扩展性。

2024-04-28 18:57:08 728

原创 【设计模式】之责任链模式

上次我们了解了设计模式中的策略模式,今天我们继续学习责任链模式。🌈

2024-04-27 15:05:07 876

原创 【设计模式】之策略模式

今天给大家介绍23种设计模式中的策略模式。🌈

2024-04-25 16:33:09 484 1

原创 面试题分享之Java集合篇(一)

哈喽,小伙伴们,昨天我们简单了解了一些集合,也见识了一些集合常见的面试题,如:ArrayList扩容等等,因为集合这章面试题比较多,很多要结合源码去深入理解,所以我就单独开辟了一个章节,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈

2024-04-24 13:22:22 1110

原创 面试题分享之Java基础篇(三)

哈喽,小伙伴们,昨天我们学习了==和equals的区别以及hashcode等等,我们今天继续来分享几道Java基础的面试题。🌈

2024-04-21 11:27:11 1000 1

原创 面试题分享之Java基础篇(二)

哈喽,小伙伴们,昨天我们回顾了面向对象的定义和三大特性及其从中引申出来的重写、重载、final等一些知识点,我们今天继续来分享几道Java基础的面试题。🌈

2024-04-20 11:18:19 713

原创 面试题分享之Java基础篇(一)

因为最近要准备面试实习,我就把自己在网上看的一些面试题,每天整理几道分享给大家,希望对那些跟我一样要面试的和将要面试的小伙伴提供一些帮助。🌈

2024-04-19 21:04:12 720 2

原创 SpringMVC前后端传值的方式

SpringMVC前后端数据交互的几种方式

2023-09-03 20:14:31 323

原创 刚学JavaWeb如何创建一个简单的Servlet项目(保姆级!!!)

刚学JavaWeb的小白如何创建一个简单的Servlet项目(保姆级!!!)

2023-03-06 22:55:34 2596

原创 解决Can not call getNString() when field s charset isn t UTF-8

解决Can not call getNString() when field s charset isn t UTF-8

2023-03-04 12:14:49 642

原创 Java连接数据库时遇到java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver问题,在此记录

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver错误

2023-03-03 16:01:50 210 1

空空如也

空空如也

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

TA关注的人

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