Spring 配置中 bean 的 class 使用工廠 Bean 的含義解析
來源:程序員人生 發布時間:2014-12-18 08:37:13 閱讀次數:4633次
Spring 配置中 bean 的 class 使用工廠 Bean 的含義解析
太陽火神的美美人生 (http://blog.csdn.net/opengl_es)
本文遵守“署名-非商業用處-保持1致”創作公用協議
轉載請保存此句:太陽火神的美美人生 - 本博客專注于 敏捷開發及移動和物聯裝備研究:iOS、Android、Html5、Arduino、pcDuino,否則,出自本博客的文章謝絕轉載或再轉載,謝謝合作。
<bean id="studentMapper" class="org.mybatis.spring.MapperFactoryBean">
<property name="mapperInterface" value="com.manager.data.StudentMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
1.此為 Spring 的配置文件中,配置的1個 bean;
固然了 Spring 的配置文件可以有多個,終究的 Bean 都會被實例化,按 XML 配置中進行裝配,
所謂裝配就是誰是誰的屬性,就把它賦給其屬性,1級1級地裝配完成。
2、就 bean 在 XML 中的實例化定義來看:
<bean id="studentMapper" class="org.mybatis.spring.MapperFactoryBean">
id 是用來標識這個 bean,或說就是 Java 代碼中實例化時,該類的名字;
該類是指誰呢?固然是后面的 class 指向的類了!
不過,這里有奇巧,后面的類是 FactoryBean,沒辦法被實例化,所以,是自動由 Spring 框架調用了該工廠 Bean 的工廠方法來獲得到 StudentMapper 類的實例,
這類情況下,前面 id 所援用的就不是后面 class 類的實例了,固然了 id 所代表的援用類型也就不是了。
這回就知道了 MyBatis 的 Mapper 的來由了。
3、但是有更簡便的方法到達 MyBatis 與 Srping 的整合,那就是 MyBatis-Srping 組件,我們使用的 MyBatis 包中的各種包類,在引入它以后,就換用它里面的對應同名類了:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
而且 Mapper 的實例對象取得,也不再那末麻煩,使用 MyBatis-Spring 中的方式:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
有了這句,所有的 Mapper 按其屬性表達式值指定的位置進行搜索,全部能被正確切例化;
在 Spring 所有配置文件上下文環境中,都可以自由援用。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈