傳統的資源查找方式 要求組件向容器發起請求查找資源,做爲迴應,容器適時的返回資源。 應用了 IOC 以後,則是 容器主動的將資源推送給它所管理的組件,組件所要作的僅是選擇一種合適的方式來接受資源。 這種行爲也被稱爲查找的 被動形式
更爲直接的:組件以一些預約好的方式(如:setter方法)來接受來自 容器的資源注入。
`配置 bean 全類名(反射)` bean.id : 標識做用,可自定義名字。經過 id 來應用bean bean.class : bean 的全類名,經過反射的方式 在ioc 容器中建立 bean 。因此要求 bean 中要有無參構造 property.name : bean setter方法名字(若是沒有刻意更改就是屬性名) property.value : 傳輸值:1) 能夠用構造器 —— 不推薦,由於多參數的時候,須要順序一直,一個錯都錯 2)set 方法。靈活自由,此時須要無參構造 <bean id="bean1" class="HelloWorld"> <property name="name" value="lsy"></property> </bean>
<constructor-arg>
<!-- 給級聯屬性賦值 注意:給級聯屬性賦值,須要有對應的getter方法 --> <bean id="carItem" class="ashley.spring.beans.CartItem"> <property name="book" ref="book"></property> <!-- 賦值 --> <property name="book.id" value="2"></property> <property name="book.name" value="Oracle"></property> <property name="count" value="30"></property> <property name="amount" value="10.2"></property> </bean>
可使用<list> <map> <set> 集合裏也能夠套嵌集合spring
<bean id="person" class="ashley.spring.beans.collections.Person"> <property name="name" value="小李"></property> <property name="age" value="100"></property> <property name="cars"> <list> <ref bean="car1"></ref> <ref bean="car2"></ref> <ref bean="car3"></ref> </list> </property> </bean>