首页 > 代码库 > Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析
Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析
Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析
太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:太阳火神的美丽人生 - 本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
<bean id="studentMapper" class="org.mybatis.spring.MapperFactoryBean"> <property name="mapperInterface" value=http://www.mamicode.com/"com.manager.data.StudentMapper"/>>
1.此为 Spring 的配置文件中,配置的一个 bean;当然了 Spring 的配置文件可以有多个,最终的 Bean 都会被实例化,按 XML 配置中进行装配,
所谓装配就是谁是谁的属性,就把它赋给其属性,一级一级地装配完成。
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 所有配置文件上下文环境中,均可以自由引用。
Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。