- 博客(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 356
原创 Spring源码调用链分析篇(二)
文章目录回顾:1、(spring的扫描)annotationConfigApplicationContext.register2、验证注册器。3、初始化Spring环境,扫描。实例化Bean4、invokeBeanFactoryPostProcessors(beanFactory);学源码的思考回顾:上一篇讲了spring到的调用链,只讲到了AnnotationConfigApplicationContext初始化完成。今天主要分析,spring是如何扫描,如何注册我们的bean到容器的。1、(spr
2020-08-29 19:56:49 406
原创 Spring源码调用链分析篇(一)
文章目录回顾:1、 AnnotationConfigApplicationContext回顾:上一篇:讲到了,用IDEA与gradle构建spring5,然后我们在编译spring源码。并且做了测试。还没有源码的大哥可以去看一下,或者直接下载,博主编译好的源码与测试类。本篇主要对spring源码分析!1、 AnnotationConfigApplicationContext1、这个类,就是spring的注解配置应用程序上下文。这个类就是初始化spring的应用环境。相信大家对这个类都很熟悉。那么接下
2020-08-29 18:24:31 707
原创 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 588
原创 深入理解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 499
原创 深入理解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 229
原创 深入理解spring(动态代理源码2)(六)
总结与回顾(接上篇)1、上一篇讲到我们自己实现动态代理。1.1 自己模拟的动态代理不需要手动创建类文件(因为一旦手动创建类文件,就会产生类爆炸),通过接口反射生成一个类文件,然后调用第三方的编译技术,动态编译这个产生的类文件成class文件,继而利用UrlclassLoader(因为这个动态产生的class不在工程当中所以需要使用UrlclassLoader)把这个动态编译的类加载到jvm当中,最后通过反射把这个类实例化。我们自己实现的动态代理缺点有哪些呢?缺点:首先要生成文件缺点:动态编译文件
2020-06-08 23:20:11 225
原创 深入理解spring(代理模式源码1)五
(一)AOP 原理解析众生周知,AOP实现原理是基于动态代理。什么是代理?增强一个类,或者一个对象的功能。就可以说是代理。如:买火车票? app 12306 就是一个代理,他代理了火车站。java实现代理的两种方式:代理的名词:代理对象 :增强后的对象目标对象 :被增强的对象他们的身份不是绝对的,会根据情况发生变化静态代理继承代理对象继承目标对象,重写需要增强的方法。动态代理...
2020-05-27 23:28:34 309
原创 深入理解Spring(AOP)(四)
上一篇聊到关于spring1、自定义注解2、springAOP切面3、各种连接点joinPoint的意义4、spring的JDK代理,与产生的一些问题接上篇,继续讲解SpringAOP通知。其他通知都比较简单,大家可以参考官方文档。这里只讲解一个比较难得环绕通知!1、spring通知前置通知,证明springAOP默认是使用JDK动态代理。如下代码片段,可以通过joinPoint...
2020-04-26 23:15:23 202
原创 深入理解Spring(AOP)(三)
aspect:一定要给spring去管理 抽象 aspectj->类 pointcut:切点表示连接点的集合 -------------------> 表 (我的理解:PointCut是JoinPoint的谓语,这是一个动作,主要是告诉通知连接点在哪里,切点表达式决定 JoinPoint 的数量)Joinpoint:连接点 目标对象中的方法 ----------------> 记录 (我的理解:JoinPoint是要关注和增强的方法,也就是我们要作用的点)
2020-04-09 01:28:24 342
原创 深入理解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 201
原创 深入理解Spring(IOC)(一)
what is IOC?控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)DI:只是实现IOC的其中一种方式(除了DI 还有依赖查找)依赖查找:如“javaJN...
2020-04-07 00:00:39 392
原创 GitLab安装与git原理深入理解(二)
(一)GIT原理深入理解接回上篇说到commit对象,就等于我们提交的所有文件git 中最重要的三个对象1、Blob 对象存储的是文件内容,压缩的存储文件名字是根据内容算出的一个hash值2、tree对象存储blob对象子tree对象3、commit对象作者提交者注释指向一个 tree 的指针到那么就构成了我们提交的文件所有描述,所以commit对象,就等于我们提交的所有文...
2020-03-29 16:46:44 389
原创 (一篇就够)git原理深入理解
深入理解git原理1:git工作模式基本步骤:1.workspace 本地工作空间add命令 提交到本地缓存2、localcache本地缓存commit命令提交到本地仓库3、localRepository本地仓库push命令提交到远程仓库拉取步骤:clone 克隆到本地仓库checkout命令切换分支git初始化安装-----Google it为每一台电脑配置身份信息$ ...
2020-03-26 23:54:46 1014 1
原创 springBoot 由浅入深 (二)
文章主要介绍对springboot 配置文件操作:一:(springboot YML 文件配置..端口配置.访问路径配置 以及对配置文件的读取 )二 : 读取配置文件信息三:测试 ==如果配置信息很多的情况下我们怎么办呢? 一大堆的配置信息需要我们去读取...在controller中读取..麻烦..而且让代码看起来 显得很凌乱;...sprin
2017-09-19 21:56:50 325
spring5.0源码下载==> spring-framework.7z
2020-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人