时间最近一段时期,"集装箱"这个词一直萦绕在我的耳边,连吃饭.睡在我的脑海里蹦来蹦去的. 由于这几天的交流时间.讨论,对于理解容器逐渐加深. 理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧. 简单的说.Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,仅仅须要调用getBean("beanID")方法. 原理简介: Spring容器的原理,事实上就是通过解析xml文件,或取到用户配置的bean…
最近一段时间,“容器”两个字一直萦绕在我的耳边,甚至是吃饭.睡觉的时候都在我脑子里蹦来蹦去的.随着这些天一次次的交流.讨论,对于容器的理解也逐渐加深.理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧. 简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法. 原理简单介绍: Spring容器的原理,其实就是通过解析xml文件,或取到用户配置的bean,然后通过反…
我们学习Spring之前需要对23种java的设计模式的9种有一定的理解,设计模式为了解耦,Spring也是在解耦的方向上设计的,所以设计模式要理解一下,它当中用到了很多. 单例模式(写法很多钟,7种中知道常用的两种左右就可以了) 工厂模式(简单工厂,工厂方法,抽象工厂) 代理模式(jdk的动态代理,CGLIB的代理) 委派模式(跟代理模式类似,区别是这个只看到结果出来) 原型模式(一个克隆对象的方法,只克隆数据类型属性叫浅拷贝,克隆对象信息的叫深拷贝) 门面模式(一个大堂经理的职位,做事的不是…
承接上节继续,分析Ioc的工作原理,在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起(同时一个叫DI"依赖注入"或DL"依赖查找"的概念,在C++,java,php以及.net中也是用到过,但是Spring中也把IOC叫做依赖注入,这是找到资料上面是这样写的),决定什么时间 调用方法.从源码的角度看这个过程是怎样实现一下几步: 定位 载入 初始化 注册 依赖注入使用 在上章节里ClassPathXmlApplicationContext…
参考博客: https://blog.csdn.net/qq_22583741/article/details/79589910 1.Spring框架是什么,为什么,怎么用 1.1 Spring框架是一种为了解决企业应用开发的复杂性而创建的开源框架. 其主要优势是分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架.Spring的核心是控制反转(IOC)和面向切面(AOP). 简单来说,Spring是一个分层的JavaSE/EE 一站式轻量级开源框架. 1.2…
文章转自http://blog.csdn.net/liushuijinger/article/details/35978965…
之前写了一篇文章IOC该博客--<Spring容器IOC解析及简单实现>,今天再来聊聊AOP.大家都知道Spring的两大特性是IOC和AOP. IOC负责将对象动态的注入到容器,从而达到一种须要谁就注入谁,什么时候须要就什么时候注入的效果,可谓是招之则来,挥之则去. 想想都认为爽,假设现实生活中也有这本事那就爽歪歪了.至于有多爽,各位自己脑补吧.而AOP呢,它实现的就是容器的还有一大优点了.就是能够让容器中的对象都享有容器中的公共服务. 那么容器是怎么做到的呢?它怎么就能让在它里面的对象自己…
前言:本人大四学生,第一次写博客,如果有写得不好的地方,请大家多多指正 一.IoC(Inversion of Control)反转控制 传统开发都是需要对象就new,但这样做有几个问题: 效率低下,创建对象时比较耗时,我立马要用对象,可系统说让你等一下,创建和初始化对象需要一定的时间. 对象关联关系,例如:用户有所属部门,那创建用户对象时,如果部门对象不存在,还得创建部门对象. 代码耦合度较高 于是有人就提出了IoC控制反转概念,干嘛我不先创建好呢?如果用户要使用时,我都已经创建好了,用户不就能…
前言:在经过前面十二篇文章的分析,对bean的加载流程大致梳理清楚了.因为内容过多,因此需要进行一个小总结. 经过前面十二篇文章的漫长分析,终于将xml配置文件中的bean,转换成我们实际所需要的真正的bean对象. 总结 [spring源码分析]IOC容器初始化(一):主要分析了Spring是如何解析占位符以及BeanFactory的最终实现类DefaultListableBeanFactory. [spring源码分析]IOC容器初始化(二):以loadBeanDefinitions函数为切…
前言:spring主要就是对bean进行管理,因此IOC容器的初始化过程非常重要,搞清楚其原理不管在实际生产或面试过程中都十分的有用.在[spring源码分析]准备工作中已经搭建好spring的环境,并利用xml配置形式对类进行了实例化.在test代码中有一个非常关键的类ClassPathXmlApplicationContext,在这个类中实现了IOC容器的初始化,因此我们从ClassPathXmlApplicationContext着手开始研究IOC的初始化过程. ClassPathXmlA…