程序员人生 网站导航

Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析

栏目:综合技术时间:2014-12-18 08:37:13

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 所有配置文件上下文环境中,都可以自由援用。







------分隔线----------------------------
------分隔线----------------------------

最新技术推荐