zoukankan      html  css  js  c++  java
  • 为什么在sqlSessionFactoryBeanName中要用value注入sqlSessionFactory,而不是ref?

    转载 https://blog.csdn.net/buyaoshuohua1/article/details/99223071

    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

    第一点:

    在mybatis-spring 1.1.0以前,是通过<property name="sqlSessionFactory" ref="sqlSessionFactory"/>将SqlSessionFactory对象注入到sqlSessionFactory,这样做可能会有一个问题,就是在初始化MyBatis时,jdbc.properties文件还没被加载进来,dataSource的属性值没有被替换,就开始构造sqlSessionFactory类,属性值就会加载失败。在1.1.0以后,MapperScannerConfigure提供了String类型的sqlSessionFactoryBeanName,这样将bean name注入到sqlSessionFactoryBeanName,这样就会等到spring初始化完成后,再构建sqlSessionFactory。因为value 属性需要一个正确并且存在的值。如果配置文件出错,或者没被加载,整个dataSource 就不存在,那么sqlSessionFactory 也是错误的,不存在的值, value值就不存在,不会在这个地方抛出异常;但是使用ref 属性,就会出现,不管这个引入的值对不对,都会被使用。但实际会因为这个值不存在,导致异常。

  • 相关阅读:
    javascript 闭包与函数变量作用域
    javaScript for循环
    node-inspector调试node项目
    nodejs async异步常用函数总结
    nodejs安装配置新手篇
    requirejs笔记
    使用nodejs中httpProxy代理时候出现404异常
    Bluebird-Collections
    Bluebird-Core API (三)
    Bluebird-Core API(二)
  • 原文地址:https://www.cnblogs.com/YoungSone/p/14399191.html
Copyright © 2011-2022 走看看