MapperScannerConfigurer中sqlSessionFactoryBeanName用value而不用ref的原因

在mybatis-spring1.1.0以前,是通过将SqlSessionFactory对象注入到sqlSessionFactory,这样做可能会有一个问题,就是在初始化MyBatis时,jdbc.properties文件还没被加载进来,dataSource的属性值没有被替换,就开始构造sqlSessionFactory类,属性值就会加载失败。

在1.1.0以后,MapperScannerConfigure提供了String类型的sqlSessionFactoryBeanName,通过,这样先将bean name注入到sqlSessionFactoryBeanName,等到spring初始化完成后,再通过bean name构建sqlSessionFactory。

注:单数据源时可以不用sqlSessionFactoryBeanName,猜想spring会自己到容器里寻找,之后会看源码验证

猜你喜欢

转载自blog.csdn.net/qq_40622253/article/details/109232072