mybatis-spring-boot-starter在maven包时报错
Posted
技术标签:
【中文标题】mybatis-spring-boot-starter在maven包时报错【英文标题】:mybatis-spring-boot-starter giving error when maven package 【发布时间】:2018-01-28 03:37:10 【问题描述】:我是新手。我按照页面 http://sivalabs.in/2016/03/springboot-working-with-mybatis/ 的说明配置 mybatis-spring-boot-starter。我使用 Mapper XML 文件来定义查询。
我是用spring boot app运行的,没问题。
但是当我通过cmd打包war文件时:mvn clean package
。我通过 cmd 运行网络应用程序:java -jar [fileWarName].war
,我给出的错误如下:
启动 ApplicationContext 时出错。要显示自动配置报告,请在启用“调试”的情况下重新运行您的应用程序。 2017-08-20 12:26:48.690 错误 3404 --- [main] os.boot.SpringApplication:应用程序启动失败
org.springframework.beans.factory.UnsatisfiedDependencyException:在 URL [jar:file:/C:/Users/KhoaNA/Desktop/test/spring-boot-mybatis-0.0.1 中定义名称为“usersResource”的 bean 创建错误-SNAPSHOT.war!/WEB-INF/classes!/com/techprimers/mybatis/springbootmybatis/resource/UsersResource.class]:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:在 URL [jar:file:/C:/Users/KhoaNA/Desktop/test/spring-boot-mybatis-0.0.1 中定义名称为“usersMapper”的 bean 创建错误-SNAPSHOT.war!/WEB-INF/classes!/com/techprimers/mybatis/springbootmybatis/mapper/UsersMapper.class]:通过bean属性'sqlSessionFactory'表达的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class] 中定义名称为“sqlSessionFactory”的 bean 创建时出错:通过工厂方法进行的 bean 实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.ibatis.session.SqlSessionFactory]:工厂方法'sqlSessionFactory'抛出异常;嵌套异常是 org.springframework.core.NestedIOException: 无法解析映射资源:'URL [jar:file:C:\Users\KhoaNA\Desktop\test\spring-boot-mybatis-0.0.1-SNAPSHOT.war!/ WEB-INF/classes/vn/hipt/fas/sql/MenuMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.4.RELEASE.jar!/:1.5.4.RELEASE] 在 com.techprimers.mybatis.springbootmybatis.SpringBootMybatisApplication.main(SpringBootMybatisApplication.java:12) [classes!/:0.0.1-SNAPSHOT] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144] 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[na:1.8.0_144] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)~[na:1.8.0_144] 在 java.lang.reflect.Method.invoke(未知来源)~[na:1.8.0_144] 在 org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [spring-boot-mybatis-0.0.1-SNAPSHOT.war:0.0.1-SNAPSHOT] 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [spring-boot-mybatis-0.0.1-SNAPSHOT.war:0.0.1-SNAPSHOT] 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [spring-boot-mybatis-0.0.1-SNAPSHOT.war:0.0.1-SNAPSHOT] 在 org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59) [spring-boot-mybatis-0.0.1-SNAPSHOT.war:0.0.1-SNAPSHOT] 原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“usersMapper”的 bean 在 URL [jar:file:/C:/Users/KhoaNA/Desktop/test/spring-boot-mybatis-0.0.1 中定义时出错-SNAPSHOT.war!/WEB-INF/classes!/com/techprimers/mybatis/springbootmybatis/mapper/UsersMapper.class]:通过bean属性'sqlSessionFactory'表达的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class] 中定义名称为“sqlSessionFactory”的 bean 创建时出错:通过工厂方法进行的 bean 实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.ibatis.session.SqlSessionFactory]:工厂方法'sqlSessionFactory'抛出异常;嵌套异常是 org.springframework.core.NestedIOException: 无法解析映射资源:'URL [jar:file:C:\Users\KhoaNA\Desktop\test\spring-boot-mybatis-0.0.1-SNAPSHOT.war!/ WEB-INF/classes/vn/hipt/fas/sql/MenuMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1357) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1249) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] ...省略了27个常用框架 原因:org.springframework.beans.factory.BeanCreationException:在类路径资源[org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]中定义的名称为“sqlSessionFactory”的bean创建错误:通过工厂方法进行的bean实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.ibatis.session.SqlSessionFactory]:工厂方法'sqlSessionFactory'抛出异常;嵌套异常是 org.springframework.core.NestedIOException: 无法解析映射资源:'URL [jar:file:C:\Users\KhoaNA\Desktop\test\spring-boot-mybatis-0.0.1-SNAPSHOT.war!/ WEB-INF/classes/vn/hipt/fas/sql/MenuMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1342) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] ...省略了39个常用框架 引起:org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.ibatis.session.SqlSessionFactory]:工厂方法'sqlSessionFactory'抛出异常;嵌套异常是 org.springframework.core.NestedIOException: 无法解析映射资源:'URL [jar:file:C:\Users\KhoaNA\Desktop\test\spring-boot-mybatis-0.0.1-SNAPSHOT.war!/ WEB-INF/classes/vn/hipt/fas/sql/MenuMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] ... 51个常用框架省略 原因:org.springframework.core.NestedIOException:无法解析映射资源:'URL [jar:file:C:\Users\KhoaNA\Desktop\test\spring-boot-mybatis-0.0.1-SNAPSHOT.war!/ WEB-INF/classes/vn/hipt/fas/sql/MenuMapper.xml]';嵌套异常是 org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:523) ~[mybatis-spring-1.3.1.jar!/:1.3.1] 在 org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:380) ~[mybatis-spring-1.3.1.jar!/:1.3.1] 在 org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:547) ~[mybatis-spring-1.3.1.jar!/:1.3.1] 在 org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:139) ~[mybatis-spring-boot-autoconfigure-1.2.0.jar!/:1.2.0] 在 org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$ea2ff066.CGLIB$sqlSessionFactory$1() ~[mybatis-spring-boot-autoconfigure-1.2.0.jar!/:1.2.0] 在 org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$ea2ff066$$FastClassBySpringCGLIB$$311d2308.invoke() ~[mybatis-spring-boot-autoconfigure-1.2.0.jar!/:1.2.0] 在 org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358) ~[spring-context-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] 在 org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$ea2ff066.sqlSessionFactory() ~[mybatis-spring-boot-autoconfigure-1.2.0.jar!/:1.2.0] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144] 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)~[na:1.8.0_144] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)~[na:1.8.0_144] 在 java.lang.reflect.Method.invoke(未知来源)~[na:1.8.0_144] 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.3.9.RELEASE.jar!/:4.3.9.RELEASE] ...省略了52个常用框架 原因:org.apache.ibatis.builder.BuilderException:解析 Mapper XML 时出错。原因:java.lang.IllegalArgumentException:映射语句集合已经包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:521) ~[mybatis-spring-1.3.1.jar!/:1.3.1] ...省略了65个常用框架 原因:java.lang.IllegalArgumentException:映射语句集合已包含 com.techprimers.mybatis.springbootmybatis.mapper.UsersMapper.findUserById 的值 在 org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:859) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:831) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:655) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:302) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:128) ~[mybatis-3.4.2.jar!/:3.4.2] 在 org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:118) ~[mybatis-3.4.2.jar!/:3.4.2] ...省略了67个常用框架
这是我的源代码:https://drive.google.com/file/d/0B72-i2S1W9r2TWVZaUhWa201M3M/view?usp=sharing
请帮帮我!谢谢!
【问题讨论】:
【参考方案1】:我也按照教程进行操作。问题不在于比利所说的。问题是 sivalabs 对 mybatis.mapperLocations 使用了禁止值。您必须使用 mybatis.mapper-locations 和资源的相关文件夹。 例如:您想要扫描功能文件夹中组织的映射器
java
main
resources
mapper
feautureA
featureAMapper.xml <- Mapper to scan
feautureB
featureBMapper.xml <- Mapper to scan
你必须使用一个模式:
mybatis.mapper-locations=mapper/**/*.xml
【讨论】:
【参考方案2】:我从页面找到了解决方案:https://github.com/mybatis/spring-boot-starter/issues/106
我应该使用默认的 MyBatis Spring Boot AutoConfigure。不要更改配置 mapperLocations: classpath*:**/mapper/*.xml.
谢谢大家!
【讨论】:
以上是关于mybatis-spring-boot-starter在maven包时报错的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis执行完新增操作后,对象的ID主键被修改了的原因mybatis-spring-boot-starter开源项目的贡献者解答