自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文读懂SpringBoot读取application配置文件流程

上面提到,自动配置资源文件依赖于多个META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件。接下来,只需要按照 prefix 的规则,在我们的配置文件中写上相应的配置,便可以覆盖这里的默认值(基本类型默认值,null,或者,其他提供者手动指定的值)包有META-INF/%s.imports文件不同,Hikari的自动配置资源文件在。除此以外,还有其他的引入方式,这里以。可以看到有一个配置方法被。

2024-10-17 18:06:47 509 1

原创 【每日一面】day04

对于MySQL来说,高度,代表磁盘IO次数,在相同高度下,B+树能存储的数据量远大于跳表。所以对于相同的数据量,MySQL的InnoDB采用B+树索引只需要较少的磁盘IO即可完成读操作;而对于写操作,B+树需要拆分合并索引数据页;跳表则独立插入,并根据随机函数确定层数,没有旋转和维持平衡的开销,写入性能会比B+树好很多。由于Redis工作在内存,一次内存IO的开销较小,所以为了提高写入性能,采用跳表作为Zset的实现。

2024-10-17 18:04:43 1070

原创 一篇文章弄懂SpringBoot的自动装配原理

也就是路径下的所有META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件其中的某个的路径(是的,这个文件有很多,比如Mybatis-Plus有,SpringBoot本身自己也有)。遍历完所有的自动配置资源文件,也就把所有自动配置资源文件下的所有包含的类的全限定名加入到了自动配置项中,后续逐层返回给。返回要导入的全限定类名数组中的类主动注册为Bean,从而完成整个自动配置的流程。

2024-10-10 15:43:31 676

原创 Git的基本使用入门

。参考:Git速查git常用命令大部分是基于三大分区来执行的。先来了解一些专有名词吧。参考:添加文件到仓库打开git bash,进入项目目录执行命令初始化本地仓库复制你的github仓库地址关联本地与远程仓库:对于public仓库,将本地仓库与远程仓库关联起来对于private仓库,将本地仓库与远程仓库关联起来要修改url可以:更改为main分支将本地的提交推送到github仓库分支相关查看当前分支重命名当前分支更换当前使用的分支查看修改与记录

2024-10-10 11:24:58 1795

原创 每日一面 day03

通过继承生成代理类,使用字节码生成库(如 ASM)来动态生成目标类的子类,并在子类中覆盖目标类的方法。代理对象实际上是目标对象的子类,所有对代理对象方法的调用都会被重定向到代理逻辑。在该方法中,您可以添加自定义逻辑(如记录日志、权限检查等),并最终调用目标对象的方法。:支持事务的原子性(Atomicity)和一致性(Consistency),以及实现 MVCC(多版本并发控制)。如果找不到匹配的名称,则根据**类型(byType)**进行查找。默认先通过**名称(byName)**查找对应的 bean。

2024-10-10 11:20:57 973

原创 JVM学习笔记

在学习JVM时的笔记,主要来源于狂神说

2024-10-10 11:15:00 1358

原创 【每日一面】day 2

如果查询条件跳过了中间的某一列,索引将不会完全被利用,比如只匹配B、C,或只匹配A、C;是 MySQL 中使用联合索引(即复合索引)时的一个重要规则,它决定了查询在使用联合索引时的效率。该原则意味着 MySQL 会按照联合索引的最左边的列开始匹配,查询条件必须从索引的最左边开始,否则索引不会被使用。:表示这些查询步骤的执行顺序是从上往下依次执行的,通常出现在简单查询或没有子查询的语句中。它显示的是被索引的列和查询条件之间的关系。要求查询条件必须从联合索引的最左边开始匹配,且可以匹配最左边的连续几列。

2024-10-09 12:03:16 546

原创 【每日一面】day 1

为了防止这种问题的发生,在Java 8中,对于HashMap的实现进行了改进,不仅改变了插入方式从头插法改为尾插法,而且引入了红黑树来优化长链表的性能。此外,还提供了线程安全的替代方案如ConcurrentHashMap,它通过分段锁等机制来支持高效的并发访问。如果你的应用需要处理并发情况,建议使用ConcurrentHashMap而不是普通的HashMap。具体来说,在发生哈希冲突时,即多个键值对映射到了同一个桶(bucket)上,这些键值对会以链表的形式链接起来。方法来判断一个Bean是否是单例。

2024-10-08 15:04:58 910

原创 一篇文章讲清楚Spring如何解决循环依赖,以及为什么需要三级缓存

从面试题出发讲清楚Spring如何解决循环依赖问题,以及为什么需要三级缓存。

2024-10-07 16:45:58 1170

原创 Linux环境下手动配置Java环境

下载JDK,地址:https://www.oracle.com/java/technologies/downloads/下载完毕后,使用WinSCP 或其他工具将下载后的包传到Linux虚拟机/usr/java上。查看Linux系统的CPU位宽,后面选择JDK安装包时根据位宽选择。本文主要介绍了如何在Linux环境下配置Java开发环境。进入Linux虚拟机,进入/usr/java目录,解压。配置全局shell环境变量,打开配置文件。

2024-10-07 10:57:33 334

原创 Mysql锁机制浅谈一

本文简要记录了mysql的加锁逻辑判断以及简单分析

2024-10-07 10:50:33 1367

原创 如何动态配置数据源

使用Druid + 自定义注解动态配置数据源

2024-10-06 23:34:52 1288

原创 设计模式笔记:工厂方法模式

由父类决定实例的生成方式,但不决定要生成的具体的类,具体的处理全部交由子类负责,以此将生成实例的框架(framework)与实际负责生成实例的类解耦。Creator,属于框架方,负责生成Product的抽象类,其对ConcreteCreator一无所知,只知道调用create方法即可生成Product实例,并且规定了处理Product逻辑的工厂方法。ConcreteCreator,属于具体加工方,对应示例的IDCardFactory类。Product,属于框架方,对应示例的Product类。

2024-07-27 13:46:15 407

原创 设计模式笔记:模板方法模式

模板方法模式(Template Method),在父类中定义处理流程的框架(模板方法),在子类中实现具体处理(实现模板方法中用到的抽象方法)。无论在父类类型变量中保存哪个子类的实例,程序都可以正常工作,这种原则称为。抽象类定义的模板方法框定的抽象方法的调用框架,如果在模板方法中发现Bug,不需要到具体的子类去修改,只需要修改模板方法即可解决问题。ConcreteClass(具体类),负责实现模板方法中的抽象方法,对应示例的CharDisplay、StringDisplay类。

2024-07-26 15:09:41 282

原创 设计模式笔记:适配器模式(Adapter)

适配器模式可以将现有的已经充分测试过的bug少的类作为组件重复利用,已生成新的类。适配器,就像我们把家用的交流100V电压通过充电器转为直流5V的充电电压一样,是为了让现有的程序和所需的程序相适应而存在的。比如让新版本扮演Adaptee角色,旧版本扮演Target角色,编写一个Adapter角色的类,负责用新版本的类来实现旧版本的类中的方法。Adaptee(被适配),类比上面所提的“现有的程序”,100V交流电压,对应下面的Banner。类适配器模式(使用继承的适配器)类,扮演适配器的角色,将现有的。

2024-07-25 14:14:20 1553

原创 设计模式笔记:迭代器模式

将遍历与实现分离开来,将遍历功能置于Aggregate角色之外。Main中的while循环并不依赖于BookShelf的实现。如果后期改用Vector来代替现在的数组管理书本,可以很方便地修改少部分代码((迭代器):抽象类(或接口),指定hasNext和next方法,前者用于判断是否存在下一个元素,后者用于获取当前元素并指向下一个元素。(集合):抽象类(或接口),定义集合的迭代器方法,用于获取集合的一个Iterator(迭代器)类。只需要修改实现部分的代码而不需要修改遍历部分的代码。

2024-07-24 20:13:01 1228

原创 浅谈跨域及其解决方案

跨域(Cross-Origin Resource Sharing, CORS)指的是浏览器的同源策略(Same-Origin Policy)限制从一个源(域名、协议和端口)加载的文档或脚本如何与来自另一个源的资源进行交互。即,如果你是直接在浏览器中发起请求,那么不允许你从不同的源(域名、协议、端口)加载资源。页面源和请求的目标源之中,两者的域名,协议,端口有一个不同,那么这些网页就不是同源的。

2024-07-23 20:17:04 1733

原创 vue兄弟组件(页面)之间通信的方法总结

作为全局状态管理方案,Vuex也可以在非父子组件之间传递数据。你可以在Vuex store中存储数据,并在需要的组件中获取和修改这些数据。:如果你的组件是通过Vue Router路由跳转的,你可以使用路由参数来传递数据。Vue实例作为事件总线,并在需要传递数据的组件中触发和监听事件。

2024-04-09 21:39:03 527 1

猜数字2022年度终极版.sln

猜数字2022年度终极版.sln

2022-11-23

空空如也

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

TA关注的人

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