最新消息:

Spring IOC初体验-Java Bean的实体化方法

技术经验 goomoon 3275浏览 0评论

Spring IOC也就是控制反转(Inverse of Control)是Spring容器的的内核,AOP、声明式事务都是在此基础上建立的。

所谓的IOC就是把传统的用程序控制业务对象之间的关系的控制权交给容器来操控,比如传统的要实例化一个对象,需要代码来new,何时new,new几个,都需要写代码来实现,在Spring IOC里把这种操作交给容器来做,把控制权由应用代码转到了外部容器,这就是“控制反转”思想的所在,IOC带来的好处就是降低了业务对象之间的依赖程度,让开发人员不必关注对象的创建,而只关注于对象的使用。

Spring IOC是通过一个配置文件来描述每个Bean之间的依赖关系,利用java语言的反射功能来实例化Bean并建立Bean之间的依赖关系。在创建实例化Bean的工具上,Spring提供了两种方式:Beanfactory 和 ApplicationContext两个接口。

BeanFactory是Spring最核心的接口,提供了高级IOC的配置机制。是Spring框架的基础设施,面向Spring本身

ApplicationContext是以BeanFactory作为基础的,提供了面向应用的功能,国际化支持和框架事件体系,对于创建应用来说,ApplicationContext比BeanFactory更接地气。

下面来看下两种实现方式的区别

JavaBean类:Car.java

配置文件:Beans.xml

BeanFactory的初始化方法:

ApplicationContext的实例化Bean的方法:

ApplicationContext  和 BeanFactory的区别:

  • ApplicationContext 是由 BeanFactory派生而来的,提供了更多面向实际应用的功能。
  • BeanFactory 的很多功能是基于编程的方式实现的,而ApplicationContext则是通过配置的方式实现的。

两者在初始化Bean时的区别:

  • BeanFactory在初始化容器的时候并未实例化bean,而是在第一次访问某个bean时才会实例化目标bean
  • ApplicationContext在初始化应用上下文的时候就实例化所有的单实例bean
  • 因此,ApplicationContext的初始化要比BeanFactory时间长一些,但也就没有稍后调用的“第一次惩罚”的问题

 

转载请注明:刘召考的博客 » Spring IOC初体验-Java Bean的实体化方法

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址