學習筆記之bean的自動裝配

2021-08-19 17:50:33 字數 1605 閱讀 1265

假如乙個類要呼叫另乙個類,那麼我們之前的方法是把被呼叫的類在中呼叫它。如圖:

有了自動裝配就不用麻煩了,接下來介紹自動裝配bean。

首先自動裝配bean需要中呼叫autowire如同

autowire中有6個屬性分別是byname,  bytype,constructor,autodetect,defualt,no這六個屬性

接下來配合**一一講解

先看兩個類檔案

package it.autowire;

public class person

//當xml檔案中autowire的引數是constructor時,則會呼叫建構函式中型別與被呼叫bean型別匹配的bean

public person(dog dog)

public string getname()

public void setname(string name)

public dog getdog()

public void setdog(dog dog)

package it.autowire;

public class dog

public void setname(string name)

system.out.println(per.getname()+"的狗是"+per.getdog().getname());//使用紅體方法時,需要呼叫dog物件}}

byname:

會查詢在呼叫類呼叫的類的型別的變數相同的物件名,並實現匹配,並完成裝配(在person類中dog物件的變數dog就和xml檔案中id="dog"相匹配並呼叫

xml檔案

尋找屬性型別相同的bean,找不到,裝不上,找到多個拋異常。變數dog的型別是dog,所以和在xml檔案型別是dog的dog相匹配完成注入,如果有多個可以對不需要進行自動裝配的bean設定屬性autowire-candidate="false"

查詢和bean的構造引數一致的乙個或 多個bean,若找不到,拋異常。按照引數的型別裝配 

這個型別在類檔案中會有點變化

public person(dog dog) //需要這樣乙個建構函式,他的引數被呼叫的型別,且完成賦值

如果物件沒有無引數的構造方法,那麼自動選擇constructor的自動裝配方式進行構造注入。如果物件含有無引數的構造方法,那麼自動選擇bytype的自動裝配方式進行setter注入。        

default這個需要在不裝配

Spring 自動裝配bean學習筆記

當實體類屬性需要依賴特別多的其他類時,bean的自動裝配可以幫我們減少xml中許多的配置。package com.huang.pojo public class people public void setcat cat cat public dog getdog public void setdo...

Bean自動裝配

spring ioc容器可以自動裝配 autowire 來協作bean之間的相互聯絡。autowire一共有五種型別。由於autowire可以針對單個bean進行設定,因此可以讓有些bean使用autowire,有些bean不採用。autowire的方便之處在減少或者消除屬性或構造器引數的設定,這樣...

Bean 的自動裝配

1 預設 xml 配置檔案中 beans 的 auto wire 屬性設定為 預設,需要對beans進行指定 2 byname xml 配置檔案中 beans 的 auto wire 屬性設定為 byname。然後,它嘗試將它的屬性與配置檔案中定義為相同名稱的 beans 進行匹配和連線。如果找到匹...