基於XML的自動裝配(自定義型別 自動賦值)

2021-10-08 17:09:22 字數 1227 閱讀 1879

為person裡面你的自定義型別的屬性賦值

property:是手動賦值,自動賦值不再配置property

自動賦值:自動裝配

autowire="default/no":不自動裝配,不自動為car賦值

autowire的引數有三個:分別按照規則

第乙個autowire=「byname」:

比如:private car car;

是以屬性名(car)作為id去容器中找到這個元件,給它賦值;如果找不到就裝配null.

相當於:ioc.getbean(「car」);

第二個:autowire=「bytype」:

private car car;

屬性的型別作為查詢依據去容器中找到這個元件.

如果容器中有多個這個型別的bean,會報錯:

nouniquebeandefinitionexception

沒找到會賦值為null

相當於:ioc.getbean(car.class)

第三個autowire=「constructor」:按照構造器進行賦值,指的是有參構造器

public car(car car)

查詢流程:1)、先按照有參構造器引數的型別進行裝配,先找到有參構造器(成功就賦值),找到引數car是car型別的,沒有就賦值為null

2)、如果按照型別(car)找到了多個bean,這個時候就用引數的名作為id繼續匹配,找到就裝配;都找不到就賦值為null

3)、這個方法不會報錯

="person" class=

"com.guigu.bean.person" autowire=

"bytype"

>

="person" class=

"com.guigu.bean.person" autowire=

"byname"

>

="person" class=

"com.guigu.bean.person" autowire=

"constructor"

>

Spring基於xml自動裝配

首先寫兩個類dept類和emp類。dept類 package com.keafmd.spring5.autowire keafmd classname dept description 部門類 author 牛哄哄的柯南 date 2021 01 16 13 43 public class dept...

spring基於xml的自動裝配

官網說明 mode 說明no 預設 無自動裝配。bean引用必須由ref元素定義。對於大型部署,建議不要更改預設設定,因為明確指定協作者可以提供更好的控制和清晰度。在某種程度上,它記錄了系統的結構。byname 按屬性名稱自動裝配。spring尋找與需要自動裝配的屬性同名的bean。例如,如果乙個b...

自定義註解在springboot自動裝配中的應用

springboot自動裝配核心原理 通過 condition註解,判斷是否要將當前bean註冊到spring容器。condition用法 放在 bean下面,動態判斷是否需要註冊bean,condition的判斷邏輯寫在其後括號中,示例 如下 public inte ce userdao publ...