一.IoC的主要组件:
(1).Spring框架的两个最基本和最重要的包是org.springframework.beans.factory(该包中的主要接口是beanfactory)和org.springframework.context包(该包中的主要接口是ApplicationFactory)。这两个包中的代码提供了Spring IoC特性的基础。
(2).Spring IoC框架的主要组件有:Beans、配置文件(beans.xml或applicationContext.xml)、beanfactory接口及其相关类、ApplicationContext接口及其相关类。
(3).下面分别介绍IoC主要组件技术:
Beans:Beans是指项目中提供业务功能的Bean,即容器要管理的Bean。Beans就是一个常见的JavaBean,Java类。
配置文件(beans.xml或applicationContext.xml):是用来装配Beans的。
— 在Spring中对Bean的管理是在配置文件中进行的。在Spring容器内编辑配置文件管理Bean又称为Bean的装配;实际上装配就是告诉容器需要哪些Bean,以及容器是如何使用IoC将它们配合起来。
— Bean的配置文件是一个XML文件,它可命名为beans.xml、applicationContext.xml或其它。一般习惯使用applicationContext.xml。
— 配置文件包含Bean的id、类、属性及其值;包含一个<beans>元素和数个<bean>子元素。Spring IoC框架可根据Bean的id从Bean配置文件中取得该Bean的类,并生成该类的一个对象,继而从配置文件中获得该对象的属性和值。常见applicationContext.xml配置文件格式如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [<!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml">]> <!--配置文件的根元素--> <beans> <bean id= "chinese" class="iocexample2.Chinese"> <!-- <property>元素用来指定需要容器注入的属性;name指定属性值为language;ref指定需要向language属性注入的id,即注入的对象“英语”,该对象由English类生成。 --> <property name="language" ref="英语"></property> </bean> <!--配置另外一个Bean--> <bean id="英语" class="iocexample2.English"></bean> </beans>
beanfactory接口及其相关类:
— beanfactory采用了工厂设计模式,即Bean容器模式,负责读取Bean的配置文件,管理对象的生成、加载,维护Bean对象与Bean对象之间的依赖关系,负责Bean的生命周期,对于简单的应用程序来说,使用beanfactory就已经足够管理Bean,在对象的管理上就可以获得许多便利性。
— org.springframework.beans.factory.beanfactory是一个顶级接口,它包含管理Bean的各种方法。Spring3框架也提供一些实现了该接口的类。
— org.springframework.beans.factory.xml.Xmlbeanfactory是beanfactory常用的实现类。其根据配置文件中的定义装载Bean。要创建Xmlbeanfactory,需要传递一个FileInputStream对象,该对象把XML文件提供给工厂。
— 代码可以写成:
beanfactory factory=new Xmlbeanfactory( new FileInputStream("applicationContext.xml "));
— beanfactory的常用方法如下:
getBean(String name):该方法可根据Bean的id生成该Bean的对象。
getBean(String name,Class requiredType):该方法可根据Bean的id和相应类生成该Bean的对象。
ApplicationContext接口及其相关类:
— 作为一个应用程序框架,只提供Bean容器管理的功能是不够的。若要利用Spring3所提供的一些高级容器功能,则可以使用ApplicationContext接口,该接口是提供高级功能的容器。
— ApplicationContext的基本功能与beanfactory很相似,但它还有以下功能:
支持国际化消息。
可以发布事件,对事件感兴趣的Bean可以接收到这些事件。
— ApplicationContext接口的常用实现类有3个:
FileSystemXmlApplicationContext:从文件系统中的XML文件加载上下文中定义的信息。
ClassPathXmlApplicationContext:从类路径中的XML文件加载上下文中定义的信息,把上下文定义的文件当成类路径资源。
XmlWebApplicationContext:从Web系统中的XML文件加载上下文中定义的信息。
—其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的代码编写如下:
ApplicationContext context=new FileSystemXmlApplicationContext("d:/applicationContext.xml ");
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml ");
第一种使用文件系统的方式来查询配置文件,此时applicationContext.xml文件位于D盘下,第二种使用类路径来查询配置文件,此时applicationContext.xml文件位于项目的src目录底下。
— FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别是:FileSystemXmlApplicationContext只能在指定的路径中查询applicationContext.xml配置文件,而ClassPathXmlApplicationContext可以在整个类路径中查询applicationContext.xml。
二.接下来来介绍一下注入的两种方式:
(1).在介绍之前,来了解一下注入的概念:IoC(控制反转)即依赖注入,就是指程序在运行过程中,如果需要另外一个对象协助完成时,无需在代码中创建被调用者,而是依赖外部的注入获取。Spring的依赖注入对调用者几乎没有任何要求,完全支持对象之间的依赖关系的管理。
(2).依赖注入通常有两种方式:设置注入和构造注入。
—设置注入:设置注入是通过setter方法注入被调用者的实例。该方式简单、直观,而且容易理解,所以Spring的设置注入被大量使用。
—构造注入:利用构造方法来设置依赖注入的方式称为构造注入。
三.以上内容仅供大家学习参考,写得不好,请见谅,如有错误,请指出,上面中没有附上一些例子,大家先理解一下吧!谢谢!