Spring源码分析
文章平均质量分 67
hsj1213522415
在校学生
展开
-
Spring源码学习之bean的prototype和singleton类型
今天学习spring源码的时候看到prototype和singleton,以前知道两者的区别,现在有点模糊了,所以就大概停下来回忆理解了一。Spring创建bean有prototype(原始模型)和singleton(单列模型)两种类型。在默认的情况下,Spring中创建的bean都是单例模式的。一般情况下,有状态的bean需要使用prototype模式,而对于无状态的bean原创 2017-02-17 22:40:58 · 1209 阅读 · 2 评论 -
spring中用到的设计模式
refresh()方法使用的是模板方法模式模板方法模式:定义:定义一个模板结构,将具体方法延迟到子类中去实现。主要作用:在不改变模板结构的前提下在子类中重新定义模板中的内容。解决的问题:提高代码复用性 将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中 实现了反向控制 通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制 &...原创 2018-07-29 22:51:13 · 329 阅读 · 0 评论 -
Spring中IOC用到的反射机制
IOC:即“控制反转”,不是什么技术,而是一种思想。使用IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。本篇文章主要讲解一下IOC底层实现的原理(反射),Bean容器的实现,就不对IOC的概念进行详述了。在Spring的配置文件中,经常看到如下配置: 那么通过这样配置,Spring是怎么帮我们实例化对象,并且放到容器中去了了?对,就是通过反原创 2017-10-10 22:40:49 · 1836 阅读 · 0 评论 -
Spring源码解析之IoC容器主要接口设计
IoC的主要接口设计图如下面所示:其中BeanFactory和ApplicationContext两个为主要接口。下面分析一下这张图:从图中我们可以得到,从接口BeanFactory—》HierarehicalBeanFactory接口——》ConfigurableBeanFactory接口, 是一条主要的BeanFactory设计路线。 在这条接口设计路线中, BeanFac原创 2017-02-14 09:39:02 · 1190 阅读 · 1 评论 -
Spring源码学习之GCLIB的简单理解
百度百科中对CGLIB的解释是这样的:CGLIB(Code Generation Library)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO(Persistent Object 持久化对象)字节码的动态生成等。不仅如此,它还为spring aop提供了一个底层的实现。下面就简单写一些代码感原创 2017-02-21 22:40:04 · 677 阅读 · 0 评论 -
Spring源码学习之动态代理
谈到代理模式,是java的一种常见的设计模式,代理模式显著的特点是代理类和委托类有相同的接口,代理类的主要功能是为委托类预处理消息,过滤消息,把消息转发给委托类,以及事后处理消息等等。代理类和委托类之间通常会存在关联,一个代理类对象和委托类对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类对象的方法来实现特定的服务。代理通常分为:静态代理:由程序员手动创建或者特定工具自动生成源原创 2017-02-21 17:42:22 · 953 阅读 · 1 评论 -
Spring源码解析之IoC容器系列的设计实现(IoC容器系列概况)
在 Spring IoC容器的设计中 ,有两个主要的容器系列 ,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能 ,另一个是ApplicalionContext应用上下文,它作为容器的高级形态而存在,在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境作了许多适配。那么具体什么是Spring IoC容器呢?他在spring框架中长什么样呢?其实原创 2017-02-13 09:52:56 · 454 阅读 · 1 评论 -
spring源码初步探索
以前总感觉自己只会按部就班的做项目,运用各种框架,不懂框架的底层实现,就连想修改一下源代码,也无从下手,或者很花时间,今天开始,自己慢慢的研究Spring框架的源代码,希望慢慢的有所进步,不只是会做项目,而且还要懂得各种框架的内部实现原理,从Spring开始。简化java企业应用的开发,是Spring框架的目标(轻量级的开发思想)。 在Java企业应用中 ,与我们熟悉的企业应用服务器一样,Sp原创 2017-02-12 10:17:40 · 445 阅读 · 1 评论 -
Spring之依赖反转(控制),依赖注入
通常在Spring中说的依赖注入,控制反转,依赖反转等名词时,总是不理解其中包含的意思,今天来梳理一下。依赖反转:依赖对象的获得被反转了,又称依赖注入。在Spring中,我们看到的就是, Java EE的服务都被抽象到IoC容器中,并通过AOP进行有效的封装,因为依赖注入的特性,这些复杂的依赖关系的管理被反转并被交给容器,使复杂的依赖关系管理从应用中解放出来了。各个模块的依赖关系通过简单的Io原创 2017-02-12 16:19:15 · 465 阅读 · 1 评论 -
Spring源码学习之spring设计理念和整体架构
1.Spring的设计理念:在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式, 使应用面向接口开发,充分支持00 ( 面向对象) 的设计方法。2.Spring的整体架构:1.SpringloC:包含了最为基本的IoC容器BeanFactory的接口与实现,也就是说,在这个Spring的核心包中,不仅定义了IoC容器的最基本接口(BeanFact原创 2017-02-12 15:35:58 · 2831 阅读 · 1 评论 -
Spring源码学习之BeanFactory接口简述
BeanFactory接口中定义如下:BeanFactory.class接口中定义的只是一下接口,通过实现这一系列接口,可以使用不同的bean的检索方法(获取不同的bean),很方便的从ioc容器中获取需要的bean,从而忽略ioc的具体实现。下面大致介绍一下这几个接口的作用:1.通过接口方法containsBean让用户能够判断容器是否含有指定名字的Bean;2.通过接口原创 2017-02-18 10:00:09 · 824 阅读 · 0 评论 -
spring源码之-策略模式
定义定义一系列算法,将每个算法封装到具有公共接口的一系列策略类中,从而使它们可以相互替换 & 让算法可在不影响客户端的情况下发生变化简单来说:准备一组算法 & 将每一个算法封装起来,让外部按需调用 & 使得互换。作用将算法的责任和本身进行解耦,使得:算法可独立于使用外部而变化 客户端方便根据外部条件选择不同策略来解决不同问题策略模式仅仅封装算法(包括...原创 2018-07-30 21:14:52 · 1700 阅读 · 0 评论