mybatis + spring boot 1.4.2 : MybatisAutoConfiguration$$EnhancerBySpringCGLIB 构造函数抛出异常 NoUniqueBeanDefinitionException

mybatis + spring boot 1.4.2 : MybatisAutoConfiguration$$EnhancerBySpringCGLIB Constructor threw exception NoUniqueBeanDefinitionException

我在尝试将 spring boot 1.4.2 应用程序部署到 tomcat 7 时遇到此错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationServiceImpl': Unsatisfied dependency expressed through field 'applicationDao'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationDao' defined in file [E:\sources\apache-tomcat-7.0.86\webapps\OnlineChannelBackend-0.0.1-SNAPSHOT\WEB-INF\classes\com\pack\dao\ApplicationDao.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$f214bdd7]: Constructor threw exception; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'java.lang.Object' available: expected single matching bean but found 4: &applicationDao,systemEnvironment,contextParameters,contextAttributes

我的相关版本 gradle:

sourceCompatibility = 1.6 //java6
targetCompatibility = 1.6

dependencies {
    compile('org.springframework.boot:spring-boot-legacy:1.1.0.RELEASE')
    compile('org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE')
    compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
    compile('com.oracle:ojdbc6:11.1.0.7.0') //java6
    providedRuntime('org.apache.tomcat:tomcat-juli:7.0.59') // java6
    compile group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: '7.0.59'

并且在 com.pack.dao 中我有 3 个用 @Mapper 注释的映射器接口和资源中相应文件夹中相应的 xml 文件...应用程序 运行 很好spring boot 2 但是一旦我开始将它更改为 spring boot 1.4.2 我就无法让它工作

因为它在以前的 spring 版本中工作,我相信你有你的配置文件,所以你可能需要为我的 batis 排除 spring 自动配置器。

@SpringBootApplication
@EnableAutoConfiguration(exclude = {MybatisAutoConfiguration.class})