1、简单类型和复合类型的setter注入
DI:Dependency Injection(依赖注入)
从字面上分析:
IoC:指将对象的创建权,反转到Spring容器
DI:指Spring容器创建对象的过程中,将对象依赖属性通过配置进行注入
其实它们是同一个概念的不同角度描述。DI相对IoC而言,明确描述了“被注入对象依赖IoC容器配置依赖对象”。
1)怎么注入值:
方式1:属性注入,通过setter方法;
方式2:构造器注入,通过构造器;
2)注入的方式:
手动装配:
基于XML:
基于注解:
自动装配:不安全,不推荐
3)注入哪些类型的值:
①简单值类型:基本类型+String+URL等
②复合类型(对象类型):
③集合类型(了解,框架内部使用)
public class Employee{
    private String name;
    private Integer age;
    private Double salary;
    private URL url;
    // 省略getter、setter方法          
}
<!-- ①简单值类型:基本类型+String+URL等 -->
<bean id="employee" class="Employee全限定名">
    <property name="name" value="John"/>
    <property name="age" value="20"/>
    <property name="salary" value="5000"/>
    <property name="url" value="http://www.baidu.com"/>
</bean>
<!-- ②复合类型 -->
<bean id="employeeDao" class="EmployeeDao全限定名"/>
<bean id="employeeService" class="EmployeeService全限定名">
    <property name="employeeDao" ref="employeeDao"/>
</bean>
public class EmployeeService{
    private EmployeeDao employeeDao;
    
    public void setEmployeeDao(EmployeeDao employeeDao){
        employeeDao = employeeDao;
    }
    public void save(){
        employeeDao.save();
     System.out.println("Service.save()")
    }   
}
public class EmployeeeDao{
    public void save(){
        System.out.println("Dao.save()")
    }
}
有的时候,若想只有一个bean引用另一个bean,类似于匿名内部类
<bean id="employeeService" class="EmployeeDao全限定名">
    <property name="employeeDao">
        <bean class="EmployeeDao全限定名"/>
    </property>
</bean>
原文:http://www.cnblogs.com/luomsg/p/6420640.html