Spring的依赖注入

依赖注入java

  Dependency InjectionIoc的做用:下降程序间的耦合(依赖关系)函数

依赖关系的管理:this

  之后都交给Spring来维护在当前类中须要用到其余类的对象,由Spring为咱们提供,咱们只须要在配置文件中说明依赖关系的维护就是依赖注入spa

依赖注入能注入的数据:有三类 code

  基本数据类型和String 对象

  其余bean类型(在配置文件中或者注解配置过的bean) blog

  复杂类型/集合类型 索引

注入的方式:io

  第一种:使用构造函数提供 class

  第二种:使用set方法提供

  第三种:使用注解提供

构造函数注入

  使用的标签:constructor-arg

  标签中的属性:

  type:注入数据的数据类型,该数据类型也是构造函数中某个或某些参数的类型

  index:用于指定要注入的数据给构造函数中指定索引位置参数赋值。索引位置从0开始。

  name:用于给构造函数指定名称的参数赋值

  value:用于提供基本类型和String类型的数据

  ref:用于指定其余的bean类型数据。它指的就是在Spring容器中出现过的bean对象

 

  优点:在获取Bean对象时,注入的数据是必须的操做,不然没法建立Bean。

  弊端:改变bean对象的实例化的方式,使咱们在建立对象的时候,若是用不到这些数据,也必须提供。

<bean id="accountService" class="com.xuefei.service.impl.AccountServiceImpl">
        <constructor-arg name="name" value="小李"></constructor-arg>
        <constructor-arg name="age" value="20"></constructor-arg>
        <constructor-arg name="date" ref="now"></constructor-arg>
    </bean>
    <bean id="now" class="java.util.Date"></bean>
package com.xuefei.service.impl;

import com.xuefei.service.AccountService;

import java.util.Date;

/**
 * 帐户业务层实现类
 */
public class AccountServiceImpl implements AccountService {

    String name;
    Integer age;
    Date date;

    public AccountServiceImpl(String name, Integer age,Date date) {
        this.name = name;
        this.age = age;
        this.date = date;
        System.out.println("我是"+name+"今年"+age+"岁了!"+date);
    }

    public void saveAccount() {
    }
}
相关文章
相关标签/搜索