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 XmlBeanFactory(new Resource())

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

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

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

思维导图:

时间: 2024-10-27 08:17:08

Spring 3.x 企业应用实战—— IoC 概述的相关文章

Spring 3.x 企业应用实战—— IoC 配置概述

Spring 配置概述 用户可以通过属性注入.构造函数注入的方式建立Bean和Bean的依赖:可以通过字面值的方式设置Bean的属性,也可以通过ref引用容器中其他的Bean:Spring为集合 类提供了专门的配置标签:使用Spring简化配置方式可以让配置文件更加紧凑:可以通过配置文件中的<bean>标签建立关联.继承.依赖.引用的关系,合理地使用这些关系可以简化配置.提高配置质量:Spring提供了5个Bean作用范围,在Web应用环境下,可以使用request. session和glob

Spring 3.x 企业应用实战—— AOP基础

AOPAOP是OOP的有益补充,他为程序开发提供了一个崭新的思考角度,可以将重复性的横切逻辑抽取到统一的模块中,通过OOP的纵向抽象和AOP的横向抽取,程序才能真正解决复杂性代码问题. Spring采用JDK动态代理和CGLib动态代理的技术在运行期间植入增强,所以我们不需要装备特殊的编译器或者类装载器就可以使用AOP的功能.要使用JDK动态代理,目标类必须实现接口,而CGLib不对目标类做任何限制,他通过动态生成目标子类的方式提供代理.JDK在创建代理对象时性能高于CGLib,而生成代理对象的

Spring3.x企业开发应用实战读书笔记 —— 第三章IoC容器概述

声明:    本篇博客绝大多数内容为<Spring3.x企业开发应用实战>一书原内容,所有版权归原书作者所有!,仅供学习参考,勿作他用! 3.2 相关Java基础知识 Java语言允许通过程序化的方式间接对Class对象实例操作,Class文件由类装载器装在后,在JVM(Java虚拟机)中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息: 如构造函数.属性和方法等.Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程

《Spring 3.x 企业应用开发实战》目录

图书信息:陈雄华 林开雄 编著 ISBN 978-7-121-15213-9 概述: 第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识. 第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界. 第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念.同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解. 第4章:讲解如何

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Java EE经典著作) 李刚 编著   ISBN 978-7-121-24253-3 2014年10月出版 定价:108.00元 824页 16开 编辑推荐 国内知名IT图书作家李刚老师基于曾荣获中国书刊发行业协会“年度全行业优秀畅销品种”大奖的<轻量级Java EE企业应用实战(第3版)>全新升级:

Spring+MYBatis企业应用实战pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容提要编辑<Spring+MyBatis企业应用实战>介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis.其中Spring 的版本为4.2,MyBatis 的版本是3.4.本书的示例建议在Tomcat 8 上运行.<Spring+MyBatis企业应用实战>重点介绍如何整合Spring MVC 4+MyBatis 3 进行Java EE 开发,主要包括三个部分.第一部分详细介绍了Spring MVC 框架的用

Spring IOC 概述

Spring IOC 概述 IOC(Inversion of Control) 控制反转,也叫 DI(D_ependency injection_) 依赖注入.是一种设计思想.不过我并不同意所谓反转的说法,因为没有谁规定什么方式就是“标准”的,如果我把IOC作为“标准”,IOC就是“标准”自身,何来反转?不过我行文也是沿用官方的说法,使用IOC描述这个技术 IOC其实是一种组装的思想,最简单理解 IOC 的方法,就是我们的组装电脑. 主板,硬盘,显卡,CPU厂商们先定义好一个个插口. 然后主板厂

使用 Spring 2.5 注释驱动的 IoC 功能(转)

基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean.装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置.本文通过实例详细讲述了 Spring 2.5 基于注释 IoC 功能的使用. 陈 雄华 ([email protected]), 技术总监, 宝宝淘网络科技有限公司 2008 年 2 月 28 日 内容 概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 J

Spring学习总结(1)- IOC

一.Spring框架概述 Spring是一个开源免费的框架,为了解决企业应用开发的复杂性而创建.Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用.Spring是模块化的,所以可以只使用其中需要的部分.可以在任何web框架上使用控制反转(IoC),也可以只使用Hibernate集成代码或JDBC抽象层.它支持声明式事务管理.通过RMI或web服务实现远程访问,并可以使用多种方式持久化数据.它提供了功能全面的MVC框架,可以透明地集成AOP到软件中. Spring被设计为非侵入式的