上面一篇文章是Spring的一个简单的演示,从这篇文章开始主要详细的介绍Spring中的细节部分。

IOC(Inversion of  control):其主要思想就是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器会返回资源,但是应用了IOC后,则是容器主动的将资源推送给它所管理的组件,组件所要作就是选择一种合适的方式来接受资源,这种行为称之为查找的被动形式。

DI(Dependency Injection):ioc的另外一种表述方式,就是组件以一定预先定义好的方式(例如:setter方法)接受来自容器的资源注入,相较于上述的IOC表述,这种表述更加的直接。

关于Spring的bean配置方式有两种:基于XML文件的配置;基于注解的方式

注入的方式:属性注入,接口注入(不常用),构造器注入


基于XML文件的bean配置

1.在xml文件中通过bean的节点来配置bean。

<!-- 通过全类名配置bean -->
	<bean id="helloworld" class="com.wpl.spring.test.HelloWorld">
	</bean>

id:bean的名称。

-在IOC容器中是唯一的

-若干id没有指定,SPring自动将类名作为Bean的名称

class:全类名

-通过反射的方式来实现的,要求bean中必须要有无参的构造器,不然会报错。

2.在IOC容器中读取bean配置创建bean实例之前,必须要对它进行实例化,只有在容器中实例化后,才可以从IOC容器中获取bean的实力并使用。

Spring 提供了两种类型的 IOC 容器实现. 
BeanFactory: IOC 容器的基本实现.
ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口.
BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用 ApplicationContext 而非底层的 BeanFactory
无论使用何种方式, 配置文件时相同的。

3.ApplicationContext 的主要实现类:
ClassPathXmlApplicationContext:从 类路径下加载配置文件
FileSystemXmlApplicationContext: 从文件系统中加载配置文件
ConfigurableApplicationContext 扩展于 ApplicationContext,新增加两个主要方法:refresh() 和 close(), 让 ApplicationContext 具有启动、刷新和关闭上下文的能力
ApplicationContext 在初始化上下文时就实例化所有单例的 Bean。
WebApplicationContext 是专门为 WEB 应用而准备的,它允许从相对于 WEB 根目录的路径中完成初始化工作


IOC容器中获取Bean

调用 ApplicationContext 的 getBean() 方法


属性注入

Spring支持三种依赖注入的方式:

1.属性注入

2.构造器注入

3.接口方法注入(很少使用)

属性注入即通过 setter 方法注入Bean 的属性值或依赖的对象
属性注入使用 <property> 元素, 使用 name 属性指定 Bean 的属性名称,value 属性或 <value> 子节点指定属性值 
属性注入是实际应用中最常用的注入方式

<bean id="helloworld" class="com.wpl.spring.test.HelloWorld">
		<property name="name" value="小明"></property>
	</bean>

这里主要就介绍了属性注入方式,下面介绍构造器注入方式。