autowire屬性值有
byName 根據Bean定義時的“id"屬性上指定的別名與Setter名稱是否一致進行自動裝配
byType 根據PoJo的setXXX()方法所接受的類型判斷bean定義文件是否定義有類似的類型對象進行自動裝配
constructor Spring容器比對容器中的Bean實例類型及相關的構造方法上的參數類型是否符合進行自動裝配
autodetect 先進行constructor自動裝配,若缺省,則進行byType自動裝配
no不進行自動裝配
depends-on
若A depends-on B 意思是實例化A之前必須先實例化B,但A不需要持有B的實例
abstract屬性值
false默認
ture表示抽象Bean,ApplicationContext預初始化時忽略所有抽象Bean定義
parent 表示該Bean為子Bean,其值指向父Bean,重用父Bean已實現的依賴
dependency-check屬性值
simple 只檢查簡單的屬性是否完成依賴關系
objects 檢查對象類型的屬性是否完成依賴關系
all檢查全部的屬性是否完成依賴關系
none默認值,表示不檢查依賴性
singleton屬性值指定此Java Bean是否采用單例(Singleton)模式
false則通過BeanFactory獲取此Java Bean實例時,BeanFactory每次都將創建一個新的實例返回。
true(默認) 則在BeanFactory作用范圍內,只維護此Java Bean的一個實例,代碼通過BeanFactory獲得此Java Bean實例的引用。
init-method 初始化方法,此方法將在BeanFactory創建JavaBean實例和屬性set注入之后,在向應用層返回引用之前執行。一般用於一些資源的初始化工作。
destroy-method 銷毀方法。此方法將在BeanFactory銷毀的時候執行,一般用於資源釋放。
lazy-init屬性值
true 延遲加載,也就是IoC 容器將第一次被用到時才開始實例化
false默認
factory-bean通過實例工廠方法創建bean,class屬性必須為空,factory-bean屬性必須指定一個bean的名字,這個bean一定要在當前的bean工廠或者父bean工廠中,並包含工廠方法。而工廠方法本身通過factory-method屬性設置。
factory-method 定義工廠方法,若是class屬性指向工廠類,該工廠類包含的工廠方法須是static
scope屬性值
scope可以取值:
* singleton:每次調用getBean的時候返回相同的實例.這個是默認,也就是單實例
* prototype:每次調用getBean的時候返回不同的實例.這個是多實例
還可取值request、session、global session等(不常用)
具體的用法如下
<bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton"/>
<bean id="userService" class="com.test.service.impl.UserServiceImpl" scope="prototype">
<property name="userDao" ref="userDao"/>
</bean>
這個怎么需要看你具體的時機...如果你的bean是無狀態的.那么單實例就可以了...如果Bean是有狀態的,那么你最好設置成多實例的.因為這樣可以解決線程安全問題.
id: Bean的唯一標識名。它必須是合法的XML ID,在整個XML文檔中唯一。
name: 用來為id創建一個或多個別名。它可以是任意的字母符合。多個別名之間用逗號或空格分開。
class: 用來定義類的全限定名(包名+類名)。只有子類Bean不用定義該屬性