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() {
    }
}
相關文章
相關標籤/搜索