1. 程式人生 > >spring的id與name的區別

spring的id與name的區別

1 每個Bean可以有一個id屬性,並可以根據該id在IoC容器中查詢該Bean,該id屬性值必須在IoC容器中唯一
2 可以不指定id屬性,只指定全限定類名
<bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean>  
3 如果不指定id,只指定name,那麼name為Bean的識別符號,並且需要在容器中唯一;
4 同時指定name和id,此時id為識別符號,而name為Bean的別名,兩者都可以找到目標Bean;
5 可以指定多個name,之間可以用分號(“;”)、空格(“ ”)或逗號(“,”)分隔開,如果沒有指定id,那麼第一個name為識別符號,其餘的為別名;若指定了id屬性,則id為識別符號,所有的name均為別名。如:
<bean name="alias1 alias2;alias3,alias4" id="hello1" class="com.zyh.spring3.hello.HelloWorld">   
<constructor-arg index="0" value="Rod"></constructor-arg>  
</bean>  
此時,hello1為識別符號,而alias1,alias2,alias3,alias4為別名,它們都可以作為Bean的鍵值;
6 可以使用<alias>標籤指定別名,別名也必須在IoC容器中唯一
<bean name="bean" class="com.zyh.spring3.hello.HelloWorld"/>    
<alias alias="alias1" name="bean"/>    
<alias alias="alias2" name="bean"/>