摘要:此選項(xiàng)將檢查容器并根據(jù)名字查找與屬性完全一致的,并將其與屬性自動(dòng)裝配如果容器中存在一個(gè)與指定類型相同的,那么將與該屬性自動(dòng)裝配如果存在多個(gè)該類型,那么拋出異常,并指出不能使用方式進(jìn)行自動(dòng)配置如果沒有找到相匹配的,則什么事都不發(fā)生
Spring注入
Spring注入是指在啟動(dòng)Spring容器加載bean配置的時(shí)候,完成對(duì)變量的賦值行為
常用的兩種注入方式:
設(shè)值注入
構(gòu)造注入
Bean配置項(xiàng)及作用域Bean的配置項(xiàng)
Id
Class
Scope
Constructor arguments
Properties
Autowiring mode
lazy-initialization mode
Initialization/destruction method
Bean的作用域
singleton:?jiǎn)卫?,指一個(gè)Bean容器中只存在一份
prototype:每次請(qǐng)求(每次使用)創(chuàng)建新的實(shí)例,destroy方式不生效
request:每次http請(qǐng)求創(chuàng)建一個(gè)實(shí)例且僅在當(dāng)前request內(nèi)有效
session:每次http請(qǐng)求創(chuàng)建一個(gè)實(shí)例且僅在當(dāng)前session內(nèi)有效
global session:基于portlet的web中有效(portlet定義了global session),如果是在web中,通session
Bean的生命周期 定義 初始化 實(shí)現(xiàn)org.springframework.beans.factory.InitializingBean接口,覆蓋afterPropertiesSet方法public class ExampleInitializingBean implements InitializingBean { public void init() { // do some initialization work } }配置init-method
銷毀 實(shí)現(xiàn)org.springframework.beans/factory.DisposableBean接口,覆蓋destroy方法public class ExampleBean { public void init() { // do some initialization work } }
public class ExampleDisposableBean implements DisposableBean { @Override public void destroy() { // do something } }配置destroy-method
配置全局默認(rèn)初始化、銷毀方法public class ExampleBean { public void cleanup() { // do some destruction work } }
Bean的自動(dòng)裝配
No:不做任何操作
byname:根據(jù)屬性名自動(dòng)裝配。此選項(xiàng)將檢查容器并根據(jù)名字查找與屬性完全一致的bean,并將其與屬性自動(dòng)裝配
byType:如果容器中存在一個(gè)與指定類型相同的bean,那么將與該屬性自動(dòng)裝配;如果存在多個(gè)該類型bean,那么拋出異常,并指出不能使用byType方式進(jìn)行自動(dòng)配置;如果沒有找到相匹配的bean,則什么事都不發(fā)生
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67671.html
摘要:它的構(gòu)造器上添加了注解,這表明當(dāng)創(chuàng)建的時(shí)候,會(huì)通過這個(gè)構(gòu)造器來進(jìn)行實(shí)例化并且會(huì)傳入一個(gè)可設(shè)置給類型的通過自動(dòng)裝配,將一個(gè)注入到之中注解不僅能夠用在構(gòu)造器上,還能用在屬性的方法上。 Spring配置的可選方案 Spring容器負(fù)責(zé)創(chuàng)建應(yīng)用程序中的bean并通過DI來協(xié)調(diào)這些對(duì)象之間的關(guān)系。當(dāng)描述bean如何進(jìn)行裝配時(shí),Spring具有非常大的靈活性,它提供了三種主要的裝配機(jī)制: 在XM...
摘要:裝配任何一個(gè)成功的應(yīng)用都是由多個(gè)為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo)而相互協(xié)作的組件構(gòu)成的創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱為裝配,這也是依賴注入配置的可選方案在中進(jìn)行顯示配置在中進(jìn)行顯示配置隱式的發(fā)現(xiàn)機(jī)制和自動(dòng)裝配自動(dòng)化裝配組件掃描會(huì)自動(dòng)發(fā)現(xiàn)應(yīng)用上下文 裝配Bean 任何一個(gè)成功的應(yīng)用都是由多個(gè)為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo)而相互協(xié)作的組件構(gòu)成的 創(chuàng)建應(yīng)用對(duì)象之間協(xié)作關(guān)系的行為通常稱為裝配(wiring)...
摘要:如果這個(gè)類的方法有修飾,就成為第二種的裝配方式代碼生成要自動(dòng)裝配的類要保留默認(rèn)構(gòu)造函數(shù),需要裝配的屬性使用來裝配。顯示裝配分為兩種,一種是代碼裝配,一種是裝配。和相比,上面這種形式的中的是調(diào)用默認(rèn)構(gòu)造函數(shù)生成的。 Bean的自動(dòng)裝配 通過@ComponentScan掃描發(fā)現(xiàn)將要裝配到ApplicationContext中的Bean。@ComponentScan中如果沒有寫包名,那么默...
摘要:的依賴關(guān)系,根據(jù)依賴關(guān)系配置完成之間的裝配。的行為信息,如生命周期范圍及生命周期各過程的回調(diào)函數(shù)。使用該種裝配模式時(shí),優(yōu)先匹配參數(shù)最多的構(gòu)造函數(shù)。如果提供了默認(rèn)的構(gòu)造函數(shù),則采用否則采用進(jìn)行自動(dòng)裝配。 點(diǎn)擊進(jìn)入我的博客 1 Spring容器與Bean配置信息 Bean配置信息 Bean配置信息是Bean的元數(shù)據(jù)信息,它由一下4個(gè)方面組成: Bean的實(shí)現(xiàn)類 Bean的屬性信息,如數(shù)...
摘要:高級(jí)裝配條件化的自動(dòng)裝配與歧義性的作用域表達(dá)式語(yǔ)言環(huán)境與可以為不同的環(huán)境提供不同的數(shù)據(jù)庫(kù)配置加密算法等注解可以在類級(jí)別和方法級(jí)別,沒有指定的始終都會(huì)被創(chuàng)建的方式配置不同環(huán)境所需要的數(shù)據(jù)庫(kù)配置會(huì)搭建一個(gè)嵌入式的數(shù)據(jù)庫(kù)模式定義在測(cè)試數(shù)據(jù)通過加 高級(jí)裝配 Spring profile 條件化的bean 自動(dòng)裝配與歧義性 bean的作用域 Spring表達(dá)式語(yǔ)言 環(huán)境與profile p...
摘要:入門篇學(xué)習(xí)總結(jié)時(shí)間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時(shí)間:2017年1月18日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://git...
閱讀 3127·2023-04-25 15:02
閱讀 2835·2021-11-23 09:51
閱讀 2045·2021-09-27 13:47
閱讀 2003·2021-09-13 10:33
閱讀 987·2019-08-30 15:54
閱讀 2651·2019-08-30 15:53
閱讀 2868·2019-08-29 13:58
閱讀 901·2019-08-29 13:54