你的位置:首页 > Java教程

[Java教程]Spring 3.x 企业应用实战—— IoC 概述


  Spring中IOC的概念,控制反转概念其实包含两个层面的意思,“控制”是接口实现类的选择控制权;而“反转”是指这种选择控制权从调用者转移到外部第三方或容器的手中。BeanFactory、ApplicationContext和WebApplicationContext是Spring框架三个最核心的接口,框架中其他大部分的类都围绕他们展开、为他们提供支持和服务。在这些支持类中,Respurce是一个不可忽视的重要接口,框架通过Resource实现了和具体资源的解耦,不论他们位于何种存储介质中,都可以通过相同的实例返回。与Resource配合的另一个接口是ResourceLoader,ResourceLoader采用了策略模式,可以通过传入资源地址的信息,自动选择适合的底层资源实现类,为上层对资源的引用提供极大的便利。

 

一、IOC 控制反转:
1、“控制”是指接口实现类的选择控制权
2、“反转”是指这种选择控制权从调用类转移到外部第三方类或者容器手里

 

二、Spring三大最核心接口:

BeanFactory

  1、Spring框架的基础设施,面向Spring本身。
  2、在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时才实例目标Bean
  3、若需要对bean定义后处理器,必须在代码中通过手工调用spring方法进行注册
  4、初始化方式 new

ApplicationContext
  1、面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext文件中定义的 Bean 
  2、在初始化应用上下文时就实例化所有的单例的Bean
  3、若需要对bean定义后处理器,其会利用反射机制自动识别出配置文件中的Processor,并自动注册到应用上下文中
  4、初始化方式
    new ClassPath     new FileSystem     new AnnotationConfigApplicationContext(Beans.class)

WebApplicationContext
  1、WebApplication需要ServletContext实例,也就是说他必须要在拥有Web容器的前提下才能完成启动工作。
  2、Spring分别提供了用于启动WebApplicationConetext的Servlet和Listener,在web.     org.springframework.web.context.ContextLoaderServlet
    org.springframework.web.context.ContextLoaderListener
  3、WebApplicationContext需要使用日志功能
    用户可以将Log4j配置文件放到类路径 WEB-INF/classes下,这时Log4j引擎即可顺利启动
    用户可以在web.   4、使用标注@Configuration的java类提供信息,contextClass、contextConfigLocation

 

三、Bean生命周期改变方式:
  1、<bean>中的init-method 和 destroy-method 这两个属性为Bean指定初始化和销毁的方法
  2、InitDestroyAnonotationBeanPostProcessor 的 @PostConstruct、@PreDestroy

 

思维导图: