自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring源码之手写MyBatis

文章目录1、回顾2、目标---手写mybatis3、环境准备!4、一阶段测试。5、疑问?IndexDao什么时候实例化的?6、(利用)ImportBeanDefinitionRegistrar,手写mybatis7、测试 mybatis低配版1、回顾前面连续开了两篇,写了Spring容器初始化的调用链。第一篇主要写了,AnnotationConfigApplicationContext对象创建完成。AnnotatedBeanDefinitionReader(this)这个对象会在DefaultList

2020-08-30 18:05:27 307

原创 Spring源码调用链分析篇(二)

文章目录回顾:1、(spring的扫描)annotationConfigApplicationContext.register2、验证注册器。3、初始化Spring环境,扫描。实例化Bean4、invokeBeanFactoryPostProcessors(beanFactory);学源码的思考回顾:上一篇讲了spring到的调用链,只讲到了AnnotationConfigApplicationContext初始化完成。今天主要分析,spring是如何扫描,如何注册我们的bean到容器的。1、(spr

2020-08-29 19:56:49 378

原创 Spring源码调用链分析篇(一)

文章目录回顾:1、 AnnotationConfigApplicationContext回顾:上一篇:讲到了,用IDEA与gradle构建spring5,然后我们在编译spring源码。并且做了测试。还没有源码的大哥可以去看一下,或者直接下载,博主编译好的源码与测试类。本篇主要对spring源码分析!1、 AnnotationConfigApplicationContext1、这个类,就是spring的注解配置应用程序上下文。这个类就是初始化spring的应用环境。相信大家对这个类都很熟悉。那么接下

2020-08-29 18:24:31 669

原创 Idea 2018.3 编译spring5源码

文章目录环境准备部分相关链接地址开启building模式将spring5.0.x源码导入IDEA等待idea build完成 。拼网速的时候到了。当项目构建完成之后,便可开始编译,直接在moudle中Run All Tests即可测试我们编译好的spring源码构建spring项目是否可用创建测试代码类,如下图环境准备1、spring源码版本:spring-framework-5.1.x;2、gradle版本:gradle-5.4;3、jdk版本:1.8.0_112;4、IntelliJ IDEA

2020-08-21 23:46:08 568

原创 深入理解spring(spring的beanFactory与spring的factoryBean)(八 )

回顾:上一篇我们自己写了山寨版本的SpringIOC容器,主要讲了。手动装配与自动装配的实现方式。还有XML得方式这一篇主要讲,springIOC的注解实现方式讲注解之前,我们先用一个问题引入,factoryBean与BeanFactory的区别有哪些?相信 很多老哥,在面试中。或者网上都有看到这样的问题。(面试)先来了解,什么是BeanFactory?beanFactory是spring中产生类的一个工厂。spring中如何声明一个bean?1、XML方式<bean》标签2、@be

2020-08-14 00:02:43 482

原创 深入理解spring(spring源码(IOC))(七)

回顾,总结!1、上一篇讲道JDK的动态代理。我们已经手动实现了一个山寨版本的动态代理。2、思考一个问题?动态代理给我们的都是代理类。如果我们不想要代理类呢?怎么办?1、spring 源码 之IOC(手动装配,自动装配)!1、今天主要跟大家分享一下Spring 的IOC。老规矩,先上代码!引入问题。如下图所示,UserServiceImpl中要调用 UserDao的query()方法?我们该怎么做?方法很多!1、我们可以用代理。2、可以用装饰者模式,把userDao对象传进去,3、可以直

2020-06-27 17:53:32 212

原创 深入理解spring(动态代理源码2)(六)

总结与回顾(接上篇)1、上一篇讲到我们自己实现动态代理。1.1 自己模拟的动态代理不需要手动创建类文件(因为一旦手动创建类文件,就会产生类爆炸),通过接口反射生成一个类文件,然后调用第三方的编译技术,动态编译这个产生的类文件成class文件,继而利用UrlclassLoader(因为这个动态产生的class不在工程当中所以需要使用UrlclassLoader)把这个动态编译的类加载到jvm当中,最后通过反射把这个类实例化。我们自己实现的动态代理缺点有哪些呢?缺点:首先要生成文件缺点:动态编译文件

2020-06-08 23:20:11 205

原创 深入理解spring(代理模式源码1)五

(一)AOP 原理解析众生周知,AOP实现原理是基于动态代理。什么是代理?增强一个类,或者一个对象的功能。就可以说是代理。如:买火车票? app 12306 就是一个代理,他代理了火车站。java实现代理的两种方式:代理的名词:代理对象 :增强后的对象目标对象 :被增强的对象他们的身份不是绝对的,会根据情况发生变化静态代理继承代理对象继承目标对象,重写需要增强的方法。动态代理...

2020-05-27 23:28:34 284

原创 深入理解Spring(AOP)(四)

上一篇聊到关于spring1、自定义注解2、springAOP切面3、各种连接点joinPoint的意义4、spring的JDK代理,与产生的一些问题接上篇,继续讲解SpringAOP通知。其他通知都比较简单,大家可以参考官方文档。这里只讲解一个比较难得环绕通知!1、spring通知前置通知,证明springAOP默认是使用JDK动态代理。如下代码片段,可以通过joinPoint...

2020-04-26 23:15:23 187

原创 深入理解Spring(AOP)(三)

aspect:一定要给spring去管理 抽象 aspectj->类 pointcut:切点表示连接点的集合 -------------------> 表 (我的理解:PointCut是JoinPoint的谓语,这是一个动作,主要是告诉通知连接点在哪里,切点表达式决定 JoinPoint 的数量)Joinpoint:连接点 目标对象中的方法 ----------------> 记录 (我的理解:JoinPoint是要关注和增强的方法,也就是我们要作用的点)

2020-04-09 01:28:24 319

原创 深入理解Spring(IOC)(二)

回顾:上一篇讲道springIOC 与DI自动装配的一些方法1、spring实现IOC的思路和方法2、@Autowired与@Resource:的区别对比3、Singleton Beans with Prototype-bean Dependencies引发的一些问题见 上一篇博客接上篇:1、spring声明周期和回调参考文档:https://docs.spring.io/spri...

2020-04-07 23:49:54 184

原创 深入理解Spring(IOC)(一)

what is IOC?控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)DI:只是实现IOC的其中一种方式(除了DI 还有依赖查找)依赖查找:如“javaJN...

2020-04-07 00:00:39 365

原创 GitLab安装与git原理深入理解(二)

(一)GIT原理深入理解接回上篇说到commit对象,就等于我们提交的所有文件git 中最重要的三个对象1、Blob 对象存储的是文件内容,压缩的存储文件名字是根据内容算出的一个hash值2、tree对象存储blob对象子tree对象3、commit对象作者提交者注释指向一个 tree 的指针到那么就构成了我们提交的文件所有描述,所以commit对象,就等于我们提交的所有文...

2020-03-29 16:46:44 369

原创 (一篇就够)git原理深入理解

深入理解git原理1:git工作模式基本步骤:1.workspace 本地工作空间add命令 提交到本地缓存2、localcache本地缓存commit命令提交到本地仓库3、localRepository本地仓库push命令提交到远程仓库拉取步骤:clone 克隆到本地仓库checkout命令切换分支git初始化安装-----Google it为每一台电脑配置身份信息$ ...

2020-03-26 23:54:46 973 1

原创 springBoot 由浅入深 (二)

文章主要介绍对springboot 配置文件操作:一:(springboot YML 文件配置..端口配置.访问路径配置 以及对配置文件的读取  )二 : 读取配置文件信息三:测试 ==如果配置信息很多的情况下我们怎么办呢?  一大堆的配置信息需要我们去读取...在controller中读取..麻烦..而且让代码看起来  显得很凌乱;...sprin

2017-09-19 21:56:50 314

原创 springBoot 由浅入深 (一)

springboot + springcould 持续奉献...满满的干货~~~~

2017-09-19 21:02:22 482

spring5.0源码下载==> spring-framework.7z

详情编译,下载请见博客:https://blog.csdn.net/dianhua18682411831/article/details/108160103

2020-08-21

MySql性能优化集合--满满的干货

mySql优化集合,MySql引擎优化方案

2017-07-08

空空如也

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

TA关注的人

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