Spring中bean的含義

SecondDream_1017發表於2018-06-21

例子:

<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction" scope="prototype">
    <property name="userBO" ref="userBO" />
</bean>
<bean id="userBO" class="com.neusoft.gmsbs.gms.user.bo.impl.UserBOImpl">
    <property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="com.neusoft.gmsbs.gms.user.dao.impl.UserDAOImpl">
    <property name="sqlMapClient" ref="sqlMapClient"></property>

</bean>

==========================================================================

我個人的理解,覺得bean就相當於定義一個元件,這個元件是用於具體實現某個功能的。這裡的所定義的bean就相當於給了你一個簡潔方便的方法來呼叫這個元件實現你要完成的功能。
對於我們的spring最主要的應該就是由這些bean組成的bean工廠,每個bean實現一個功能
例如:你寫的第一個bean
<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction"
scope="prototype">
<property name="userBO" ref="userBO" />
</bean>
id相當於定義了你的這個bean的別名,如果你需要他的話只要關聯這個別名就可以了,也就相當於下面的<property name="userBO" ref="userBO" />一樣,在你的userAction中需要實現userBO這個功能,我關聯它,那麼在action中set注入就可以使用了!
至於其他的屬性看下面:
Id : 標識該bean的名稱,通過factory.getBean(“id”)來獲得例項。
Class : 該bean的類路徑。
Singleton : 預設為true,即單例項模式,每次getBean(“id”)時獲取的都是同
一個例項,如果設定為false,即原型模式,則每次獲取的是新建立
的例項。
Init-method : 在bean例項化後要呼叫的方法(bean裡定義好的方法)。
Destroy-method : bean從容器裡刪除之前要呼叫的方法。
Autowire : 其屬性要通過何種方法進行屬性的自動裝配。
對於上述的各個屬性,id和class是必要的,其他的則可以省略。例如如果設定了autowire的值,則表明需要自動裝配,否則是手動裝配。

相關文章