Spring學習筆記6 bean作用域和自動裝配

2021-10-09 23:12:03 字數 1050 閱讀 6371

作用域

描述singleton

在spring ioc容器僅存在乙個bean例項,bean以單例方式存在,bean作用域範圍的預設值。

prototype

每次從容器中呼叫bean時,都返回乙個新的例項,即每次呼叫getbean()時,相當於執行new***bean()。

request

session

說明singleton和prototype容易理解,不多做解釋,只需要注意一點:如果不指定bean的作用域,spring預設使用singleton作用域

自動裝配,就是將乙個bean注入到其他bean的property中。spring框架式預設不支援自動裝配的,要想使用自動裝配需要修改spring配置檔案中標籤的autowire屬性

模式描述

no這是預設的設定,它意味著沒有自動裝配,你應該使用顯式的bean引用來連線。你不用為了連線做特殊的事。在依賴注入章節你已經看到這個了。

byname

由屬性名自動裝配。spring 容器看到在 xml 配置檔案中 bean 的自動裝配的屬性設定為 byname。然後嘗試匹配,並且將它的屬性與在配置檔案中被定義為相同名稱的 beans 的屬性進行連線。

bytype

由屬性資料型別自動裝配。spring 容器看到在 xml 配置檔案中 bean 的自動裝配的屬性設定為 bytype。然後如果它的型別匹配配置檔案中的乙個確切的 bean 名稱,它將嘗試匹配和連線屬性的型別。如果存在不止乙個這樣的 bean,則乙個致命的異常將會被丟擲。

constructor

類似於 bytype,但該型別適用於構造函式引數型別。如果在容器中沒有乙個構造函式引數型別的 bean,則乙個致命錯誤將會發生。

autodetect

spring首先嘗試通過 constructor 使用自動裝配來連線,如果它不執行,spring 嘗試通過 bytype 來自動裝配。

說明:預設為byname

<?xml version="1.0" encoding="utf-8"?>

Spring 學習筆記 (三) Bean

配置 例項化 裝配 注入不同資料型別 基於annotation 定義 bean 標註在實現類上 bean 元件裝配 標註在屬性變數,屬性的 setter 方法,構造方法上 載入註解定義的 bean 區別見 difference between contextannotation config and...

Spring 自動裝配bean學習筆記

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

Spring實戰 6 內部Bean

本篇文章講解了spring的通過內部bean設定bean的屬性。類似內部類,內部bean與普通的bean關聯不同的是 1 普通的bean,在其他的bean例項引用時,都引用同乙個例項。2 內部bean,每次引用時都是新建立的例項。鑑於上述的場景,內部bean是乙個很常用的程式設計模式。下面先通過前文...