對Spring IOC容器相關整理(二)

1、命名空間 :Beans 下的元素及屬性

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" >
    <description>rabbitmq 連接服務配置</description>
    <!--步驟1、配置鏈接工廠-->
    <bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
        <property name="host" value="${mq.address}"/>
        <property name="port" value="${mq.port}"/>
        <property name="password" value="${mq.pwd}"/>
        <property name="username" value="${mq.user}"/>
        <property name="publisherConfirms" value="true"/>
        <property name="publisherReturns" value="true"/>
        <property name="virtualHost" value="${mq.vhost}"/>
        <property name="requestedHeartBeat" value="50"/>
    </bean>
 //.......
</beans>

對於配置XML文件 Spring 提供了很多的元素和屬性,用於對對象與其依賴關係進行描述。Spring的XML文件就像一張記錄詳細配料,火候等的菜譜。對於Spring XML文件,我們一般通過以<beans>....</beans>包圍的元素開始配置。

有關http://www.springframework.org/schema/beans 中對於beans 的定義可參見:標籤系列一:spring 中beans解釋以及beans標籤裏面的屬性

接下來我要整理一下關於beans 的相關的元素及屬性:

beans命名空間下的元素

通過編輯器可以輕易的找到在beans命名空間下,存在beans、bean、alias、description、import 五個元素存在。(也可能是4個, 在http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 版中沒有beans元素,4.0版存在(默認最新版請把上文中的-3.0 去掉))

1.1、beans元素

beans元素是頂層(通常爲根)元素。允許定義所有嵌套bean定義的默認值。

beans元素有自己的屬性:

1.1.1、default-autowire 屬性:

default-autowire 有五個值 分別如下:

默認的值爲:no 即不啓用自動注入。

default:實際上是會優先執行constructor然後是byType

byType:這個是會根據類型去注入,當找到了會直接注入,沒有找到不會報錯,但是找到多個會報No unique bean of type的錯誤

byName:這個會根據name注入

constructor:這個是通過構造注入

no:不啓用自動注入

1.1.2、default-autowire-candidates 屬性:

 default-autowire-candidates是候選者,自動裝配時即匹配則被包含。不匹配的排除在外。

default-autowire-candidates屬性的值允許使用模式字符串,例如我們制定default-autowire-candidates=“*abc”,則所有以“abc”結尾的Bean都將被自動裝配。它還支持多個字符,可以通過,空格 等分割。

1.1.3、default-init-method 和 default-destroy-method 屬性:

default-init-method="init" default-destroy-method="destroy"

 很多Bean都需要配置初始化方法和銷燬方法,那麼可以在beans標籤中配置default-init-method和default-destroy-method來指定所有Bean的默認初始化方法和銷燬方法 (initdestroy 是bean中的方法)

 1.1.4、default-lazy-init 屬性:

spring配置默認default-lazy-init爲false,當屬性default-lazy-init設置成true時,sping不會再去加載整個對象實例圖,大大減少了初始化的時間,減少了spring的啓動時間。

1.1.5、default-merge 屬性:

 從Spring 2.0M2開始,beans支持default-merge= "true" 的定義,子類不需要重新定義父類的List型屬性中已定義過的內容 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章