首页 > 代码库 > Spring随笔(06)

Spring随笔(06)

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>

 

Spring随笔(06)