美文网首页
mapper-spring-boot-starter 1.2.0

mapper-spring-boot-starter 1.2.0

作者: marquess | 来源:发表于2018-01-09 16:43 被阅读0次

    今天在线上的项目,还没更新文件的情况重新发布了下测试版,结果出现以下的错误:
    Cause: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider
    折腾了一天的时间,然后找了度娘,这篇博客,找到了解决的办法,感谢,顺便记录下,一便下次查阅.

    通用mapper是mybatis的扩展,它提供了一系列的通用方法,避免了冗余的xml编写和公共增删改查的重复劳动。它极大的简化了单表的增删改查,并可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。

    出现这个问题: Cause: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider
    作者说这个问题是由于通用mapper没有初始化引起的,我查阅了关于spring boot中Configuration和AutoConfiguration加载顺序的资料,得出问题原因:spring boot中Configuration的加载在AutoConfiguration之前。 but, 为什么mybatis的starter初始化没有问题?
    github上的一篇文章解答了这个问题(但我目前没在spring官网找到该描述的出处,如您找到了,请告知,谢谢。)

    发现作者是使用 @PostConstruct 完成通用mapper的初始化的,所以在 Configuration 之后才会初始化,这就引发了以上的错误。
    弄明白了问题所在,那该怎么解决呢?
    弄明白原因了,其实问题就解决了,我们只要让通用mapper的AutoConfiguration在Configuration之前加载就可以了,但我们没办法在使用作者提供的starter,需要自己来实现。我将实现后的代码放到了github

    感谢原文作者,此处是做以下记录,如果侵权,请告知删除,谢谢!!! 原文地址

    小广告

    • 觉得有帮助的和有需要的朋友帮忙点击图片/连接,再进行购买,这样可以请我喝杯咖啡.

    • 阿里云是国内云服务器市场的龙头,性价比高,速度快又安全,是站长建站首选的云服务器之一。

    • 另附上,阿里云云产品通用代金券
      通用代金券 - 最高¥1888云产品通用代金券

    • 企业云服务器特惠 - 高性能云服务器特惠,企业级性能云服务器限时2折起,更高计算网络性能

      468-60.jpg

    相关文章

      网友评论

          本文标题:mapper-spring-boot-starter 1.2.0

          本文链接:https://www.haomeiwen.com/subject/ifkgnxtx.html