zoukankan      html  css  js  c++  java
  • MapperScannerConfigurer不 property-placeholder

    关于org.mybatis.spring.mapper.MapperScannerConfigurer不支持 property-placeholder 参考了http://www.oschina.net/question/188964_32305,才解决了自己的问题。

    先注释红色部分,我是之前写的。然而就会产生错误,说找不到${driverClassName}

    java.lang.ClassNotFoundException: ${driverClassName}

    后面搜索一番,说:

    “在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致PropertyPlaceholderConfigurer失效,也就是用${jdbc.username}这样之类的表达式,将无法 获取到properties文件里的内容。 导致这一原因是因为,MapperScannerConigurer实际是在解析加载bean定义阶段的,这个时候要是设置 sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替 换定义中的变量,导致把表达式当作字符串复制了。 但如果不设置sqlSessionFactory 属性的话,就必须要保证sessionFactory在spring中名称一定要是sqlSessionFactory ,否则就无法自动注入。又或者直接定义 MapperFactoryBean ,再或者放弃自动代理接口方式。

    然后在spring 3.1.1以上版本是可以这样的。”

    “改用sqlSessionFactoryBeanName注入就没有问题(不要使用sqlSessionFactory属性注入,使用 sqlSessionFactoryBeanName注入),因为这时不会立即初始化sqlSessionFactory,传入的只是名字,非bean, 所以不会引发提前初始化问题。”

    所以我的问题解决了,只要注释红色圈圈的上面一行并且解开红色框所在行的注释就行了。  其中注意的是属性名:sqlSessionFactoryBeanName不是随意来的。

  • 相关阅读:
    win10安装node后npm 报错
    nodejs 图片的像素级别处理
    vue 等比例截图组件,支持缩放和旋转
    撸一个 vue 的截图组件,按比例截取
    原生 js 录屏功能
    Mongodb命令行导入导出数据
    Linux 下配置 iSCSI 客户端
    基于 Docker 实现 DevOps 的一些探索
    10 张图带你深入理解 Docker 容器和镜像
    浅谈 Docker 安全合规建设
  • 原文地址:https://www.cnblogs.com/yuanfy008/p/5070433.html
Copyright © 2011-2022 走看看