- 博客(51)
- 收藏
- 关注
原创 如何快速掌握Redis跳跃表源码技巧?阿里架构师让你秒懂
我们再来学习如何从跳跃表中查询数据,跳跃表本质上是一个链表,但它允许我们像数组一样定位某个索引区间内的节点,并且与数组不同的是,跳跃表允许我们将头节点L0层的前驱节点(即跳跃表分值最小的节点)zsl->header.level[0].forward当成索引0的节点,尾节点zsl->tail(跳跃表分值最大的节点)当成索引zsl->length-1的节点,索引按分值从小到大递增查询;也允许我们将尾节点当成索引0的节点,头节点L0层的前驱节点当做索引zsl->length-1的节点,索引
2021-06-19 14:55:24
173
原创 字节大佬GitHub发文Mybatis和Jpa区别与性能比较,6小时获8万星标
前言这几天听朋友说JPA很好用,根本不用写sql。我在想一个程序员不写sql还能叫程序员?而且越高级的工具封装越多的工具,可拓展性和效率就非常的低,况且我本身非常不喜欢过于封装的东西,平时喜欢手写sql,所以一直都是用mybatis去写业务。然后发现jpa的saveAll()批量插入批量更新速度太慢了,导致一些用excel导入的一些东西非常慢,弄得原本同步可以解决的事情每次导入都要开启一个异步,个人感觉这种做法非常不好。因为异步其实就是对当前的业务不影响去另外的时间段去做,例如跑定时任务,异步更新增量信
2021-06-18 20:50:04
3383
7
原创 硬核!阿里P7大佬详细分析11种行为型模式,码农:讲得太透彻了
行为型模式11种行为模式的关系: 第一类: 通过父类与子类的关系进行实现 第二类: 通过两个类之间的关系进行实现 第三类: 通过类的状态进行实现 第四类: 通过中间类进行实现策略模式(Strategy)策略模式: 定义了一系列算法,并将每个算法封装起来,可以相互替换,算法的变化不会影响到使用算法的用户 设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口 设计一个抽象类(选用,作为辅助类),提供辅助函数 ICalculator接口提供统一的方法...
2021-06-18 20:09:50
247
原创 牛批!GitHub一夜登顶的SpringBoot的项目笔记太强了,星标超10+
环境概述Mac Big Sur 11.4 IntelliJ IDEA 2021.1.1 (Ultimate Edition)Docker的安装以及在Idea里的配置Docker的安装非常简单,只需要使用Homebrew安装即可(没有homebrew可以自行搜索安装homebrew)brew install --cask --appdir=/Applications docker安装后需要点开顶部的图标,输入本机密码后方可通过命令行验证Docker是否安装成功docker --ve
2021-06-18 17:54:19
188
原创 GitHub超9万星标!三种序列化方式存取redis的方法,限时免费开源
/*** 以pb序列化方式向redis保存对象 2019** @param key* @param value*/public void setObjPb(String key, Object value) { final byte[] vbytes = SerializeUtil.serializePb(value); redisTemplate.execute(new RedisCallback() { @Override publi...
2021-06-17 15:56:26
137
原创 清华教授!想要吃透final的各种用法与意义?看这篇笔记就够了
final的各种用法与意义final 是 Java 中的一个关键字,简而言之,final 的作用意味着“这是无法改变的”。不过由于 final 关键字一共有三种用法,它可以用来修饰变量、方法或者类,而且在修饰不同的地方时,效果、含义和侧重点也会有所不同,所以我们需要把这三种情况分开介绍。final 修饰变量关键字 final 修饰变量的作用是很明确的,那就是意味着这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,直到天涯海角也不会“变心”。如果我们尝试对一个已经赋值过 final
2021-06-17 14:25:12
287
1
原创 阿里架构师用Java语言实现抽奖项目系统,已在GitHub 星标超 4万
项目介绍:(1)功能介绍:主要业务:为公司活动(如年会等)提供在线抽奖功能,满足奖品、抽奖人员的管理,及抽奖活动的需要。用户注册 用户登录、会话管理 抽奖设置:奖品管理,抽奖人员管理 人员抽奖(2)开发环境与技术栈:windows Maven Lombok Spring、SpringMVC、SpringBoot MySQL、Mybatis、Druid(3)项目演示:用户登录:用户注册:奖项设置:抽奖人员设置:抽奖:2、项目准备:
2021-06-16 17:34:23
490
1
原创 硬核资源!阿里内部流传的 JDK 手册!GitHub 已获三十万的访问量
深入 JDK 动态代理实现基本使用没有花里胡哨的,就下面的代码:UserService userService = new UserServiceImpl();UserService o = (UserService) Proxy.newProxyInstance(UserService.class.getClassLoader(), new Class[]{UserService.class}, new InvocationHandler() { @Override pub
2021-06-15 16:20:46
1168
原创 3天怒肝5万字!阿里P7大佬手写MySQL超全笔记,还担心学不会吗?
下面对于MySQL进行相关介绍,文档的内容较为基础,针对刚开始学习的同学,仅仅涉及操作,少量原理,大佬请绕道哦。因字数太多,会分为两篇发放。一、MySQL架构介绍1-MySQL简介概述MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以你不需要支付额外的费用。MySQL支持大..
2021-06-10 16:25:29
203
1
原创 阿里P7大佬!带你解决线程带来的安全风险问题,满足你的求知欲
活跃性问题死锁所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。public class ThreadDeadLock { public static void main(String[] args) { String lockA = "lockA"; String lockB = "lockB"; new Thread(new HoldThread(loc
2021-06-10 14:07:19
101
原创 清华教授!亲手教你JavaScript 在线解压 ZIP 文件,实战理论全都有
相信大家对 ZIP 文件都不会陌生,当你要打开本地的 ZIP 文件时,你就需要先安装支持解压 ZIP 文件的解压软件。但如果预解压的 ZIP 文件在服务器上,我们应该如何处理呢?最简单的一种方案就是把文件下载到本地,然后使用支持 ZIP 格式的解压软件进行解压。那么能不能在线解压 ZIP 文件呢?答案是可以的,接下来阿宝哥将介绍浏览器解压和服务器解压两种在线解压 ZIP 文件的方案。在介绍在线解压 ZIP 文件的两种方案前,我们先来简单了解一下 ZIP 文件格式。一、ZIP 格式简介ZIP 文件
2021-06-09 15:12:52
1330
原创 硬核!阿里首推Spring Cloud Alibaba & Dubbo整合,实战理论全都有
开篇Spring Cloud Netflix已经不流行了,因为它已经不维护更新了,也不是说它不能用,只是有比它更好更新的。那就是Spring Cloud Alibaba系列。下面是Spring Cloud Alibaba的特性描述:使用的版本:spring.boot.version:2.5.0 (目前最新) spring-cloud-alibaba.version:2.2.1.RELEASE (目前最新) dubbot: 2.7.6 (目前最新3.0.0)关于项目结构..
2021-06-09 14:22:07
478
原创 清华博士分析ThreadLocal源码,程序员:学霸果然厉害,学到了
ThreadLocal源码分析最近在学多线程并发的知识,发现好像ThreadLoca还挺重要,决定看看源码以及查找各方资料来学习一下。ThreadLocal能够提供线程的局部变量,让每个线程都可以通过set/get来对这个局部变量进行操作,不会和其它线程的局部变量进行冲突,实现了线程的数据隔离。首先是ThreadLocal的结构:每个Thread维护一个ThreadLocalMap,这个Map的的key就是ThreadLocal本身,value才是真正要存储的变量。所以这个变量当然是线程私有
2021-06-08 20:34:30
113
原创 霸榜GitHub阿里内部ConcurrentLinkedQueue笔记(源码)有多强?
ConcurrentLinkedQueue 源码浅析队列是一种常见的数据结构,主要特点是 FIFO,Java 为其定义了接口类:Queue,并提供了丰富的实现,有底层基于数组的[有界]队列,也有基于节点链接的无界队列,有阻塞队列,有非阻塞队列,还有并发安全的队列。常见的队列实现的两种方式:数组、节点链接。Java 对队列的基本实现在包:java.util 中,对并发安全实现主要存在于 Java 的 JUC 包下。在使用 Java 的线程池工具:ThreadPoolExecutor,其使
2021-06-08 14:53:56
165
原创 阿里P7大佬!一文带你快速了解内存泄漏问题的排查过程,赶紧收藏
上一篇分享的是《更顺滑的MyBatis》,这篇给大家分享《内存泄漏问题的排查过程》。近日,线上服务夯住了,所有的请求处理异常的慢,请求不断的转圈圈。 首先排查日志发现如下报错:Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded再用grep命令统计错误出现的次数,发现出现了3000多次grep 'OutOfMemoryError' ***.log | wc -l排查问题具体看这个报错的原因,大概.
2021-06-07 21:01:34
173
原创 硬核!阿里P8带你体验更顺滑的MyBatis,付费资源请低调观看
上一篇分享的是《Spring Boot - 自定义 Banner 图案》,这篇给大家分享《更顺滑的MyBatis》。MyBatis霸榜的底气来源于其广袤的生态以及国内众多大厂的支持。一 普拉斯们不香了从iBatis到MyBatis,再到国内团队以MyBatis Plus为典型代表的诸多周边工具,"Batis"系列套餐的发展历程,几乎又是一部XML的兴衰史。最初的iBatis诞生于2002年,彼时XML在Java乃至整个软件技术界都还相当盛行,和同时期的许多项目一样,iBatis硬生生的将一堆
2021-06-07 16:32:43
200
原创 清华教授!手抄NIO Buffer类与属性万字详解,一文解决高并发
上一篇分享的是《Redis 五种数据结构以及三种高级数据结构解析》,这篇给大家分享《详解NIO Buffer类》。详解NIO Buffer类NIO的Buffer本质上是一个内存块,既可以写入数据,也可以从中读取数据。Java NIO中代表缓冲区的Buffer类是一个抽象类,位于java.nio包中。NIO的Buffer内部是一个内存块(数组),与普通的内存块(Java数组)不同的是:NIO Buffer对象提供了一组比较有效的方法,用来进行写入和读取的交替访问。tips: Buff.
2021-06-03 15:05:28
85
原创 硬核资源!Redis 五种数据结构以及三种高级数据结构解析(详解)
上一篇分享的是《深入理解JVM》,这篇给大家分享《Redis 五种数据结构以及三种高级数据结构解析》。前言在 Redis 最重要最基础就属 它丰富的数据结构了,Redis 之所以能脱颖而出很大原因是他数据结构丰富,可以支持多种场景。并且 Redis 的数据结构实现以及应用场景在面试中是相当常见的,接下来就和大家聊聊 Redis 的数据结构。Redis数据结构有:string、list、hash、set、sorted set这五个是大家都知道的,但Redis还有更高级得数据结构,比如:H..
2021-06-02 17:04:21
344
原创 想挑战高薪?不深入理解JVM怎么行,阿里P8大佬带你从入门到入土
上一篇分享的是《一个Java类的加载》,这篇给大家分享《深入理解JVM》。本文是基于jdk8进行分析的概述 JVM体系结构 类加载机制 运行时数据区 垃圾回收机制概述 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正
2021-06-01 13:34:37
103
原创 年薪百万大佬!Java类的加载笔记是怎样的?看完可以直接怼领导了
上一篇分享的是《利用redis未授权访问漏洞》,这篇给大家分享《一个Java类的加载》。写在前面:该系列文章,主要是为了深入学习Java完成的一条链,推荐阅读的整体顺序为:Java的内存模型(根源),一个java文件被执行的历程,一个Java类的加载,Java的垃圾回收机制及算法,Linux(六):系统运维常用命令 和 Java程序运行状态的监控(实用,定位Java程序问题)1|0类的加载我一直认为,不应该把类的加载,单独当作一个模块去看,那样就是单纯地去看一个知识点,不利于建立Ja.
2021-05-31 21:25:31
94
1
原创 硬核资源!利用redis未授权访问漏洞(图文详解)
上一篇分享的是《SpringMVC-RequestMappingHandlerMapping》,这篇给大家分享《利用redis未授权访问漏洞》。0x00 原理 首先需要知道的是,redis是一种非关系型数据库。它在默认情况下,绑定在0.0.0.0:6379 ,若不采取相关策略,比如添加防火墙限制非信任IP访问,会使得redis服务暴露到公网,若未设置密码认证,可导致任意用户未授权访问redis以及读取redis数据。 攻击者可利用redis自身提供的config命令进行写文件,可将自己的ss.
2021-05-30 16:39:47
266
原创 硬核!Github霸榜8小时的SpringMVC笔记,清华教授都给了好评
上一篇分享的是《基于springcloud一套可落地实施的安全认证框架整合》,这篇给大家分享《SpringMVC-RequestMappingHandlerMapping》。前言使用SpringBoot进行web开发时,控制器类由@RestController注解修饰,通常@RestController注解与@RequestMapping配合使用,被修饰的类用于处理由DispatcherServlet分发下来的web请求。那么当一个web请求到达时,DispatcherServlet是如何将.
2021-05-29 16:20:29
90
原创 牛掰!吃透了腾讯T6大佬的Spring集成笔记,助我连斩2个30K Offer
上一篇分享的是《图解Redis-AOF持久化》,这篇给大家分享《Spring集成使用工作流框架Activiti!事务配置,注解配置以及流程资源自动化部署》。Spring使用Activiti提供了一些非常不错的集成特性,只在Activiti与Spring集成时使用ProcessEngineFactoryBean可以把流程引擎(ProcessEngine)作为一个普通的Spring bean进行配置 类org.activiti.spring.ProcessEngineFactoryBean是集
2021-05-28 16:27:33
80
1
原创 清华教授!图解Redis-AOF持久化,既有趣又清晰,码农:太实用了
上一篇分享的是《Hashtable原理解析》,这篇给大家分享《图解Redis-AOF持久化》。图解 Redis | AOF 持久化AOF 日志试想一下,如果 Redis 每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令,并且执行它,这不就相当于恢复了缓存数据了吗?这种保存写操作命令到日志的持久化方式,就是 Redis 里的 AOF(Append Only File) 持久化功能,注意只会记录写操作命令,读操作命令
2021-05-27 13:57:54
113
原创 全到哭!阿里P7梳理的Hsahtable原理解析Github新开源,送你上岸
上一篇分享的是《深入源码,深度解析Java 线程池的实现原理》,这篇给大家分享《Hashtable原理解析》。概述 本文是基于jdk8_271版本进行分析的。 Hashtable与HashMap一样,是一个存储key-value的双列集合。底层是基于数组+链表实现的,没有红黑树结构。Hashtable默认初始化容量为11,Hashtable也会动态扩容,与HashMap不同的是,每次扩容的容量是原容量2倍+1(2倍+1是为了避免hash冲突)。Hashtable的key和value都不允许
2021-05-26 19:16:44
115
原创 看了30多篇深度解析线程池的文章,只有阿里P7大佬的这篇才是王者
上一篇分享的是《Mybatis-Plus的应用场景及注入SQL原理分析》,这篇给大家分享《深入源码,深度解析Java 线程池的实现原理》。java 系统的运行归根到底是程序的运行,程序的运行归根到底是代码的执行,代码的执行归根到底是虚拟机的执行,虚拟机的执行其实就是操作系统的线程在执行,并且会占用一定的系统资源,如CPU、内存、磁盘、网络等等。所以,如何高效地使用这些资源就是程序员在平时写代码时候的一个努力的方向。本文要说的线程池就是一种对 CPU 利用的优化手段。线程池,其实就是维护了很多.
2021-05-26 13:50:31
92
原创 怒肝通宵给女朋友整理Mybatis知识点总结,网友:单身狗羡慕了呀
上一篇分享的是《IntelliJ IDEA 中的常用配置》,这篇给大家分享《Mybatis》一、Mybatis简介1、什么是mybatisMybatis是由apache提供的一个针对持久层开源框架,对JDBC访问数据库的过程进行了简化和封装使用mybatis可以只关注SQL语句本身,而不需要关注(JDBC中的)注册驱动、获取连接、获取传输器、释放资源等过程。mybatis可以将要执行的SQL语句使用xml文件的方式或者注解方式配置起来,在执行时,将Java对象中携带的参数值和SQL骨.
2021-05-23 11:50:33
184
原创 渣本逆袭!撸了阿里P7大佬的SpringBoot笔记,轻松斩获了25Koffer
上一篇分享的是《提高工作效率的IDEA插件》,这篇给大家分享《SpringBoot简明教程》。SpringBoot简明教程一、SpringBoot简介1、什么是SpringBootSpringBoot用来简化spring应用开发,约定大于配置,去繁从简,是J2EE一站式解决方案2、SpringBoot的优点快速创建独立运行的Spring项目以及主流框架的集成 使用嵌入式的Servlet容器,应用无需打成WAR包 starts自动依赖与版本控制 大量的自动配置,简化开发..
2021-05-20 19:24:59
258
原创 硬核!阿里P8常用的IDEA插件外泄,码农:有它工作效率直接翻倍
上一篇分享的是《Spring IOC》,这篇给大家分享《提高工作效率的IDEA插件》。以下我将工作中常用的插件罗列出来,以便需要的同志们查询,使用频率高的加粗标识:[x] .ignore [git忽略工具,提交代码时自动过滤] [ ] AceJump [快捷跳转,键盘按键可跳转到编辑器的任意位置] [x] CodeGlance [代码预览] [x] Key promoter X [快捷键提示] [x] String Manipulation [字符串变换,如驼峰转换] [x...
2021-05-19 13:56:53
171
1
原创 阿里p7大佬!熬了2天整理出Spring IOC笔记,码农:太牛了,已收藏
上一篇分享的是《List集合多线程并发条件下不安全的解决办法》,这篇给大家分享《Spring IOC》。一 . 前言Spring IOC 体系是一个很值得深入和研究的结构 , 只有自己真正的读一遍 , 才能有更好的理解.这篇文章主要说明一下 CreateBean 整个环节中的大流程转换 , 便于查找问题的原因 :此篇文章的目的 :梳理Bean 的创建流程 , 便于后续查找问题点 梳理过程中的参数情况 , 减少Debug的需求 梳理整体家族体系Bean 创建的几个触发场景 :.
2021-05-18 16:33:51
88
原创 超实用!清华教授对数据库时间格式进行了8种处理,码农:我跪了
上一篇分享的是《Java数据结构-栈》 ,这篇给大家分享《数据库时间格式的处理》。主要对于项目中的数据库的时间进行处理。正文:博主在做一个列表的时候从MongoDB中查出来的数据包含有时间格式,在MongoDB数据库中的存放形式为2017-10-24 05:18:54.000Z,而对于使用Java查询时String接受的值为Tue Oct 24 13:18:54 CST 2017。本来的做法是使用第三方工具类hutool-all的DateUtil进行转换。例如://数据格式转换.
2021-05-14 15:45:46
131
原创 3天豪肝2万字!美团码农带你快速从Spring Security入门到入坟
上一篇是分享的是《RabbitMQ实现延时消息的两种方法》,这篇给大家分享《Spring Security 》,这篇文章大概有22000字左右,需要朋友们有点耐心观看,相信一定会有收获。1. Hello Security按照惯例,先写个Hello World首先,引入依赖1 <dependency>2 <groupId>org.springframework.boot</groupId>3 <artifactId>.
2021-05-12 13:51:52
188
原创 腾讯T6大牛体系化带你学习Java面向对象,网友:这详解,太清晰了
上一篇是分享的是《Spring Security》,这篇给大家分享《JAVA 面向对象之多态 》。接下来开始进行分享:多态1. 概念多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。比如,你的女朋友让你买点水果回来,不管买回来的是苹果还是西瓜,只要是水果就行,这个就是生活.
2021-05-11 14:33:01
48
原创 阿里P7大佬!王者级讲解ConcurrentHashMap源码,码农:太透彻了
上一篇是分享的是《Scala - 类的定义》,这篇给大家分享《ConcurrentHashMap源码》。今天先更新一部分,一会儿要出门,谅解。ConcurrentHashMap源码解读一首先就先来说一下几个全局变量 private static final int MAXIMUM_CAPACITY = 1 << 30; //最大容量2的30次方 private static final int DEFAULT_CAPACITY = 16; //默认容量 1&.
2021-05-10 17:31:01
135
原创 GitHub霸屏文章!清华教授手写保姆级笔记Scala - 类,网友:太香了
上一篇是分享的是《《MySQL主从复制》,这篇给大家分享《Scala - 类的定义》。Scala - 类的定义成员变量在java中,我们定义一个类是这样的:public class JavaPerson { private String name; private Integer age; // 省略name、age的setter和getter方法}调用是这样的:public static void main(String[] args) { .
2021-05-10 16:25:23
98
原创 阿里P7:每个码农都应该知道的MySQL主从复制方法,看这篇就够了
上一篇是分享的是《OpenJDK》,这篇给大家分享《MySQL主从复制》。目录:MySQL主从复制 MySQL主从复制过程 MySQL多实例数据库搭建 MySQL多实例数据库启动与关闭 MySQL一主多从架构 MySQL双主双从配置开启二进制日志 MySQL一主多从环境重启及MySQL双主双从数据复制验证 MySQL多实例数据库配置 MySQL双主双从重置主从状态MySQL主从复制若数据库仅有一台服务器,那么单点问题比较容易产生,若服务器访问响应者崩溃,那么服务器就不能.
2021-05-10 14:45:58
162
1
原创 学妹问我:OpenJDK是什么?作为师哥,必须万字详解屁颠屁颠奉上
上一篇是分享的是《JVM虚拟机-了解Java堆中对象分配、布局和访问的全过程》,这篇给大家分享《OpenJDK》。1.OpenJDK 概述OpenJDK 是 Java 平台标准版 (Java SE) 的免费开源实现。这是 Sun Microsystems (以下简称:Sun) 于2006年开始努力的结果。该实现已获得 GNU通用公共许可证(GNU GPL)版本2的许可。但有链接例外。除 GPL 特例链接之外,链接到 Java 类库的组件将受到 GPL 许可条款的约束。OpenJDK Pr.
2021-05-09 21:25:01
4660
原创 清华博士!教你如何快速了解JVM虚拟机,码农:天才就是不一样
上一篇是分享的是《Thread详解》,这篇给大家分享《JVM虚拟机-了解Java堆中对象分配、布局和访问的全过程》,对象是Java中最常被提到的概念,也是Java的灵魂,Java中一切皆是对象。JVM是Java的根基,理解灵魂与根基是如何融合的,对于理解Java本身至关重要。对象的创建#对象的创建从Java语言层面上,往上往就是一个简单的new即可搞定,而深入JVM的底层,可就复杂得多了。JVM中对象的创建过程,分为如下5步,如图:类加载检查#虚拟机遇到一条 new 指令后,.
2021-05-08 20:14:43
80
原创 纯干货!看了10多篇Thread详解,只有阿里P7大佬的这份才是王者
上一篇是分享的是《spring源码系列之BeanDefinition》,这篇给大家分享《Thread详解》,主要讲线程生命周期、Thread类的构造方法以及常用API、以及介绍线程关闭方法。1 线程生命周期1.1 五个阶段线程生命周期可以分为五个阶段:NEW RUNNABLE RUNNING BLOCKED TERMINATED1.2NEW用new创建一个Thread对象时,但是并没有使用start()启动线程,此时线程处于NEW状态。准确地说,只是Thread对象的..
2021-05-08 16:44:34
283
原创 腾讯T6!万字长文体系化讲解Spring源码,码农:太透彻了,学会了
上一篇是分享的是《Spring SPI 机制总结》,这篇给大家分享《spring源码系列之BeanDefinition》,这篇文章略长,纯干货,大家准备好,发车啦。【spring源码系列】之【BeanDefinition】1. BeanDefinition简介BeanDefinition有三个实现类,ChildBeanDefinition、GenericBeanDefinition、RootBeanDefinition,三者都继承AbstractBeanDefinition,对三个子类..
2021-05-08 14:13:13
431
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人