SqlMapClientFactoryBean为什么能转为SqlMapClient
来源:互联网 发布:淘宝天天特价女装 编辑:程序博客网 时间:2024/04/30 20:14
在实际操作spring与mybatis整合过程中,经常遇到在spring配置文件中声明的是org.springframework.orm.ibatis.SqlMapClientFactoryBean实例,但是在使用的时候却能转为SqlMapClient使用。原因如下:
这是因为Spring的机制的缘故。简单的说,如果一个bean实现了 FactoryBean接口,那么Spring就不会把该bean本身实例化并返回,而是返回该bean的getObject()返回的对象。这是Sprign的游戏规则。我们来看一眼 SqlMapClientFactoryBean的源码片段:
public class SqlMapClientFactoryBean implements FactoryBean,InitializingBean { private SqlMapClient sqlMapClient; protected SqlMapClient buildSqlMapClient(Resource configLocation,Properties properties) throws IOException { InputStream is = configLocation.getInputStream(); if (properties != null) { if (buildSqlMapClientWithInputStreamAndPropertiesMethodAvailable) { return SqlMapClientBuilder.buildSqlMapClient(is,properties); } else { return SqlMapClientBuilder.buildSqlMapClient(new InputStreamReader(is), properties); } } else { if (buildSqlMapClientWithInputStreamMethodAvailable) { return SqlMapClientBuilder.buildSqlMapClient(is); } else { return SqlMapClientBuilder.buildSqlMapClient(new InputStreamReader(is)); } } } //这里就是返回的、并会被注入到其它类里的对象 public Object getObject() { return this.sqlMapClient; }}
0 0
- SqlMapClientFactoryBean为什么能转为SqlMapClient
- 为什么SqlMapClientFactoryBean与SqlMapClient类型不同也可被注入
- sqlMapClientFactoryBean的简单介绍
- SqlMapClientFactoryBean的理解
- 读ibatis源码—为什么说SqlMapClient是线程安全的
- 搜索为什么能盈利
- Facebook为什么能成功?
- 我为什么能成功
- 谁能告诉我为什么
- 刘志军为什么能一手遮天
- ZigBee为什么能抗干扰?
- 为什么copy_to_user 能拷贝?
- Linux为什么能成功?
- 图像为什么能相加
- 怎样能完整将PDF转为PPT
- 客户端SqlMapClient
- SqlMapClient对象
- SqlMapClient对象
- asynchttpclien使用Post数据上传
- java 类加载器
- hdu 4762 Cut the Cake (概率 + java大数)
- java进程的代码。
- 微信企业号第三方应用开发[三]——授权应用
- SqlMapClientFactoryBean为什么能转为SqlMapClient
- 地址
- php使用正则表达式去掉html中的注释
- 虚拟机开机时出现Press ESC in 5 seconds to skip startup.nsh, any other key to continue问题的解决办法
- SecurityException JCE 问题以及JBOSS环境NoClassDefFoundError问题
- 为什么重写equals方法,一定要重写HashCode方法
- android开发 继承AppCompatActivity类去掉ActionBar
- 浏览器中字体变得很奇怪,间距变大,字体很丑,解决办法。
- SpringMVC中的参数组装:HandlerMethodArgumentResolver