Spring IOC又称为控制反转(Inverse of Control)或依赖注入(Dependency Injection)
基本原理-容器和bean
bean就是spring容器初始化、装配及管理的对象。bean定义以及bean相互之间的依赖关系通过配置元数据来描述
容器
org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IoC容器负责容纳bean,并对bean进行管理。
在Spring中,BeanFactory是IoC容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
配置元数据
<bean id="" class="">
<property name="" ref=""></property>
</bean>
实例化bean
bean定义描述了如何创建一个或多个对象实例。当需要的时候,容器会从bean定义列表中取得一个指定的bean定义,并根据bean定义中的配置元数据使用反射来创建(取得)一个实际的对象。
通过构造器来实例化
默认书写格式
使用静态工厂方法实例化
加入属性:
factory-method="createInstance"
使用实例工厂方法实例化
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="com.foo.DefaultServiceLocator">
<!-- inject any dependencies required by this locator bean -->
</bean>
<!-- the bean to be created via the factory bean -->
<bean id="exampleBean" factory-bean="serviceLocator" factory-method="createInstance"/>
注解版
<!--开启注解配置-->
<context:annotation-config></context:annotation-config>
<!--扫描com.niu下的所有包-->
<context:component-scan base-package="com.niu"></context:component-scan>
在类定义上加上@Component(“userService”)注解,在要注入的属性的setter方法上,加入@Resource注解,表示注入。