标签:
1、IOC概念
IOC全称Inversion of Control,被译为控制反转;
IOC是指程序中的对象获取方式发生反转,有最初的new方式创建,转换为由第三框架创建、注入。第三框架一般是通过配置方式指定注入哪一个具体实现,从而降低了对象之间的耦合度
IOC按实现方法不同,可以分为依赖注入DI和依赖查找两种
Spring容器是采用DI方式实现了IOC控制,IOC是Spring框架的基础和核心;
DI全称是Dependency Injection,被译为依赖注入;
DI的基本原理就是将一起工作具有关系的对象,通过构造方法参数或方法参数传入建立关联,因此容器的工作就是创建bean时注入那些依赖关系
2、Setter注入
通过调用无参构造器或无参static工厂方法实例化bean之后,调用bean的setter方法,即可实现setter方式注入。
public class JDBCDataSource{
private String driver;
public void setDriver(String driver){
try{//注册数据库驱动
Class.foeName(driver);
this.driver=driver;
}catch(Exception e){
throw new RuntimeException(e);
}
}
//其他代码
}
在容器xml配制中,配置注入参数。
<bean id="" class="">
<property name="" value=""/>
<property name="" value=""/>
.......
</bean>
3、构造器注入
基于构造器的注入是通过调用带参数的构造器来实现的,容器在Bean被实例化的时候,根据参数类型执行相应的构造器。
public class OracleUserDAO implements UserDAO{
private JDBCDataSource dateSource;
publica OracleUserDAO(JDBCDataSource dataSource){
this.dataSource = dataSource;
}
//其他代码。。。 。。。
}
根据构造参数索引指定注入
<bean id="dataSource" class="org.tarena.dao.JDBCDataSouurce">
<property name="" value=""/>
</bean>
<bean id="userDAO" calss="" >
<constructor-argindex="0" ref="dataSource"/>
</bean>
4、自动装配(属性值见图示)
配置示例
<bean id="userDAO" class="">
<constructor-argindex="0" ref="dataSource"/>
</bean>
<bean id="userService" class="" autowire="byType"/>
上述配置,在UserService中如果存在接受UserDAO类型的方法Setter方法,Spring就可以自动将userDAO对象注入进去
标签:
原文地址:http://www.cnblogs.com/Crow00/p/4564829.html