- 博客(33)
- 收藏
- 关注
原创 还在写普通的CRUD代码?缓存数据冷热分离、缓存击穿、缓存穿透、双写/读写不一致、服务器雪崩你了解吗?
你是否还在写普通的CRUD代码?是否还在苦恼如何提高自己的代码水平?今天,我们将深入探讨一些高级的缓存策略和数据一致性问题,通过实际案例和解决方案,帮助大家写出更加健壮和高效的代码。
2024-06-29 15:42:47
669
原创 【总结】在SpringBoot项目中如何动态切换数据源、数据库?(可直接CV)
本文参考若依源码,介绍了如何在SpringBoot项目中使用AOP和自定义注解实现MySQL主从数据库的动态切换,当从库故障时,能自动切换到主库,确保服务的高可用性。如果服务器搭建的是一主多从多个mysql数据源,主服务器用来读。从服务器用来写。此时你在代码层面用注解指定了一个增删改方法到从数据源,但是碰巧此时从数据源失效了,那么就会自动的切换到其它服务器。
2024-06-24 18:42:31
2477
2
原创 【面试题】Spring常见面试题整理2024(全是干货!!!)
IOC容器初始化阶段:根据程序里面定义XML、注解等Bean的声明方式,通过解析和加载后生成的BeanDefinition,然后把BeanDefinition存入到一个Map集合里面,完成IOC的初始化阶段。完成Bean的初始化和DI:通过反射对一个没有设置Lazy-init属性的单例Bean进行初始化,然后进行依赖注入,将属性注入到Bean对象中。
2024-06-19 10:40:38
1982
原创 【面试题】谈谈你对Spring的IOC和AOP的理解?
Spring的IOC(Inverse of Control,控制反转)是Spring框架的一个核心概念,它是一种设计原则,用于实现软件组件之间的解耦。AOP(Aspect-Oriented Programming,面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性。
2024-06-19 10:40:17
1335
原创 【面试题】MySQL常见面试题总结
B+树是基于B树和叶子节点顺序访问指针进行实现,它具有B树的平衡性,并且通过顺序访问指针来提高区间查询的性能。进行查找操作时,首先在根节点进行二分查找,找到一个key所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出key所对应的data。插入、删除操作会破坏平衡树的平衡性,因此在插入删除操作之后,需要对树进行一个分裂、合并、旋转等操作来维护平衡性。
2024-06-16 10:18:05
1150
原创 面试题分享之JVM篇
学过Java的小伙伴肯定对JVM(Java虚拟机)多多少少了解一点,Java的“一次编译,到处运行”的特点就离不开他。今天我们就通过面试题去进一步的了解它。🌈。
2024-06-12 18:18:36
1327
1
原创 【学习总结】SpringBoot中使用单例模式+ScheduledExecutorService实现异步多线程任务(若依源码学习)
最近在学习若依这个开源项目,发现他记录登录日志的时候使用了异步线程去记录日志,觉得这个方案也挺不错的,在此学习记录下来,以后在工作中也能提供一种思路,其他小伙伴如果有觉得不错的方案也可以在评论区里留言,大家一起探讨一下🍭
2024-06-11 10:56:03
975
原创 【设计模式】之代理模式(两种)
今天继续给大家介绍23种设计模式中的代理模式,熟悉Spring的小伙伴都知道,Aop使用的就是代理模式,所以,代理模式还是非常重要的,在工作中用的也是非常的多。🌈
2024-05-10 10:33:02
1095
1
原创 【设计模式】之观察者模式
今天给大家介绍另一种设计模式--观察者模式,有了解webscoket实现原理的小伙伴应该对这个设计模式不陌生。不清楚也没关系,今天就给大家介绍一下这个设计模式。🌈
2024-05-08 10:34:20
900
2
原创 【设计模式实战】用三种设计模式去优化if-else屎山代码!!!
我们之前也学习了不少设计模式,今天给大家介绍一个案例,帮助大家更加熟悉设计模式,并能够在自己写项目的时候能够下意识的使用设计模式,避免写出屎山代码。🌈。
2024-05-07 18:00:22
1655
1
原创 面试题分享之Java并发篇
今天给小伙伴们分享我整理的关于Java并发的一些常见面试题,这期涉及到线程的一些知识,所以要求小伙伴有一些操作系统的知识,不清楚也不要紧,也不是什么很难的知识点。🌈
2024-05-04 16:49:19
1006
1
原创 一个注解完美实现分布式锁(AOP)
学习过Spring的小伙伴都知道AOP的强大,本文将通过Redisson结合AOP,仅需一个注解就能实现分布式锁。🍭
2024-05-03 18:23:29
1286
原创 面试题分享之Java集合篇(三)
哈喽,小伙伴们,昨天我们见识了HaspMap常见的面试题,如:HaspMap的get、put、resize方法的原理等等,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈
2024-05-03 16:40:33
1210
原创 【学习总结】使用分布式锁和乐观锁解决“超卖”问题
在商品库存管理中,超卖是指销售数量超过了实际库存数量的情况。这在电商和其他零售业务中是一个常见的问题。使用数据库的乐观锁或悲观锁来确保在读取和更新库存量时的数据一致性。这可以确保在并发操作中,只有一个操作可以成功修改库存。使用如Redis这样的内存数据库来缓存库存数据,从而加速读写操作。但需要注意的是,缓存和数据库之间的数据同步问题。如果你的应用是分布式的,考虑使用分布式锁来确保跨多个实例的库存操作的原子性。使用消息队列来管理库存操作,限制并发的库存更新请求。
2024-05-01 15:51:17
2992
1
原创 面试题分享之Java集合篇(二)
哈喽,小伙伴们,昨天我们见识了一些集合常见的面试题,如:List为什么实现RandomAccess接口、HashSet实现原理等等,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈
2024-04-30 14:19:16
884
原创 SpringBoot优雅地定制JSON响应数据
最近在学习过程中发现了Jackson库的@JsonView也可以改变JSON的输出结构,并且可以更加精细的控制,我平时一般都会定义一些DTO去封装响应数据,使用这种方法可以不用创建DTO,更加优雅且高效的方式来实现。🌈
2024-04-29 21:48:49
1443
2
原创 【设计模式】之模板方法模式
今天给大家介绍23种设计模式中的模板方法模式,这个设计模式在Spring框架中还是挺常见的,手写Spring源码的小伙伴必须要掌握的设计模式之一,文章结构还是经典的三连问,是什么?为什么?怎么用?🌈
2024-04-29 11:23:05
1344
原创 【学习总结】封装自定义响应类和全局异常处理
最近整理一下自己平时写项目的一些工具类,在这里分享给小伙伴们,如果有喜欢的自行复制即可,开箱即用。😊@Setter@Getter//成功码.public static final String SUCCESS_MESSAGE = "操作成功";//成功信息.//错误码.public static final String ERROR_MESSAGE = "系统异常";//错误信息.//状态吗!=200 说明有错误.
2024-04-28 22:01:16
259
原创 【学习总结】使Aop实现自定义日志注解
我们在平时开发时,往往需要添加各种各样的日志记录,造成业务代码穿插非业务代码,使代码臃肿,业务逻辑不清晰。为了解决这些问题我们可以使用面向切面(AOP)编程的思想,将非业务代码剥离出来。面向切面编程(AOP)是一种重要的编程思想,通过将横切关注点从核心业务逻辑中分离出来,可以提高代码的可维护性、可复用性和可扩展性。
2024-04-28 18:57:08
795
原创 面试题分享之Java集合篇(一)
哈喽,小伙伴们,昨天我们简单了解了一些集合,也见识了一些集合常见的面试题,如:ArrayList扩容等等,因为集合这章面试题比较多,很多要结合源码去深入理解,所以我就单独开辟了一个章节,废话不多说,今天继续来给大家分享几道Java集合的高频面试题。🌈
2024-04-24 13:22:22
1176
原创 面试题分享之Java基础篇(三)
哈喽,小伙伴们,昨天我们学习了==和equals的区别以及hashcode等等,我们今天继续来分享几道Java基础的面试题。🌈
2024-04-21 11:27:11
1081
1
原创 面试题分享之Java基础篇(二)
哈喽,小伙伴们,昨天我们回顾了面向对象的定义和三大特性及其从中引申出来的重写、重载、final等一些知识点,我们今天继续来分享几道Java基础的面试题。🌈
2024-04-20 11:18:19
814
原创 面试题分享之Java基础篇(一)
因为最近要准备面试实习,我就把自己在网上看的一些面试题,每天整理几道分享给大家,希望对那些跟我一样要面试的和将要面试的小伙伴提供一些帮助。🌈
2024-04-19 21:04:12
799
2
原创 刚学JavaWeb如何创建一个简单的Servlet项目(保姆级!!!)
刚学JavaWeb的小白如何创建一个简单的Servlet项目(保姆级!!!)
2023-03-06 22:55:34
4016
1
原创 解决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
802
原创 Java连接数据库时遇到java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver问题,在此记录
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver错误
2023-03-03 16:01:50
320
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人