繼承圖
beanfactory:載入配置檔案時,例項化延遲,在呼叫getbean()的時候才進行例項化。
@test
public
void
testhellospring()
這種方式,比較常用,也就是只在bean.xml檔案中配置就行了
id="userid"
class="com.exmaple.spring.user">
bean>
通過建立靜態類,在類中建立例項,在bean.xml檔案中配置工廠類
1、user類
public
class user
}
2、mybeanfactory**
public
class mybeanfactory
}
3、beans.xml配置
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:xsi=""
xsi:schemalocation="
/spring-beans.xsd">
id="user"
class="com.exmaple.spring3.mybeanfactory"
factory-method="createuser">
bean>
beans>
4、測試
@test
public
void
testhellospring()
使用這種模式,首先得例項化工廠
1、user類
public
class user
}
2、mybeanfactory類中**
public
class mybeanfactory
}
3、bean.xml檔案配置
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:xsi=""
xsi:schemalocation="
/spring-beans.xsd">
id="mybeanfactory"
class="com.exmaple.spring4.mybeanfactory">
bean>
id="user1"
factory-bean="mybeanfactory"
factory-method="createuser">
bean>
beans>
4、測試
@test
public
void
testhellospring()
普通bean:
工廠bean:特殊的bean,用於生成指定的bean,必須實現介面factorybean,這個介面用於返回指定的bean例項
beanfactory:這是乙個工廠,用於生成bean,生成任意的bean.
factorybean:這是乙個bean,用於生成指定的bean.
id="userid"
class="com.exmaple.spring.user">
bean>
id:不能重複,可以使用特殊字元和數字
name:可以設定多個name,但是不能重複
1、xml注入:
建構函式注入:構造注入的優勢是通過構造強制依賴關係
屬性setter方法注入: set注入的缺點是無法清晰表達哪些屬性是必須的,哪些是可選
介面注入 – spring不支援
2、自動注入
bytype:按型別裝配
byname:按名稱裝配
constructor裝配
autodetect 不確定裝配
構造注入
public
class user
public string tostring()
}
bean.xml中配置
<?xml version="1.0" encoding="utf-8"?>
xsi:schemalocation="
/spring-beans.xsd"
xmlns:xsi=""
xmlns="">
id="user"
class="com.zcl.spring.setterinjection.user">
value="zhao" />
value="22" />
value="china" />
bean>
beans>
spring3.0引入全新的spel(spring expression language)spring表示式語言,使用表示式語言可以使屬性注入格式進行進一步簡化,同時支援包括物件注入、集合注入、集合訪問、例項方法引用、靜態方法引用等多種格式
格式:註解:就是乙個類,用於取代xml檔案,使配置更加簡化
xml配置:容易查詢,但內容多,不易維護
註解配置:將註解新增在介面或者類上,不直觀,不易查詢。
註解:
@component 元件,用於取代配置,建議配置任意內容。
@controller ,用於配置web層,之後使用在action上。
@service,用於配置service層。
@repository ,用於配置dao層。
@autowired 自動注入,預設情況安裝型別進行注入
@qualifier 修改自動注入,從預設按照型別匹配,變成按照名稱匹配。
@resource 與 @autowired和@qualifier結合 等效
例如:@resource(「名稱」)
在mvc專案中的對應
controller層:action中配置 @controller,並使用@autowired進行自動注入
service層:配置@service,且使用@autowired和@qualifier 確定使用指定的dao
dao層:dao中配置@repository
匯入spring測試jar – spring-test-3.2.0.release.jar
兩個註解
@runwith 用於確定使用按個第三方測試功能
例如:junit4 實現類 springjunit4classrunner
@contextconfiguration 用於配置xml檔案
locations 確定xml位置。
Spring之Bean的配置(二)
目錄 一 bean的配置 1.自動裝配 1 簡介 2 缺點 2.繼承bean 3.依賴bean配置 4.bean的作用域 5.使用外部屬性檔案 6.註冊propertyplaceholderconfigurer 7.通過工廠方法配置bean 1 靜態工廠 2 例項工廠 8.通過factorybean...
spring框架學習05 註解配置bean
1.註解配置元件型別 component 標識乙個受spring ioc容器管理的元件。repository 標識乙個受spring ioc容器管理的持久化層元件。service 標識乙個受spring ioc容器管理的業務邏輯層元件。controller 標識乙個受spring ioc容器管理的表...
Spring中Bean的配置
以下面的xml檔案舉例 第乙個bean的名稱為role,第二個bean的名稱為medicine,第三個bean的名稱為spring.chapter.mary.poison,第四個bean的名稱為spring.chapter.mary.poison 1 id和name的區別如下 id屬性具有唯一性,每...