abel533 / MyBatis-Spring-Boot

Spring Boot集成MyBatis的基础项目
3.37k stars 1.59k forks source link

SpringBoot not use @SpringBootApplication with Mybatis and tk #151

Closed CookieNuts closed 5 years ago

CookieNuts commented 5 years ago

Our project not use @SpringBootApplication, and use @Import usage configuration, and how to import mybatis and tk package to solve these problems, thanks for help!!!

pom:

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.26</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- springboot的mybatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
    </dependency>
    <!--分页插件 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>
    <!--集成通用mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.2.4</version>
    </dependency>

main file: @Configuration @Import(value = { CodecsAutoConfiguration.class, CuratorServiceDiscoveryAutoConfiguration.class, DispatcherServletAutoConfiguration.class, EmbeddedWebServerFactoryCustomizerAutoConfiguration.class, EndpointAutoConfiguration.class, ErrorMvcAutoConfiguration.class, HealthIndicatorAutoConfiguration.class, HealthEndpointAutoConfiguration.class, HttpEncodingAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, InfoContributorAutoConfiguration.class, InfoEndpointAutoConfiguration.class, JacksonAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class, RefreshAutoConfiguration.class, RefreshEndpointAutoConfiguration.class, ServletWebServerFactoryAutoConfiguration.class, ServiceRegistryAutoConfiguration.class, UtilAutoConfiguration.class, WebEndpointAutoConfiguration.class, WebMvcAutoConfiguration.class, WebMvcEndpointManagementContextConfiguration.class, ZookeeperAutoConfiguration.class, ZookeeperAutoServiceRegistrationAutoConfiguration.class, ZookeeperDiscoveryAutoConfiguration.class, ZookeeperDiscoveryClientConfiguration.class, ZookeeperServiceRegistryAutoConfiguration.class, }) @EnableDiscoveryClient @EnableAsync(proxyTargetClass = true) @EnableAspectJAutoProxy(proxyTargetClass = true) @EnableRetry @MapperScan("com.xxx.xxx.dao") //配置扫描mapper接口的地址 public class BidderApplication {

public static void main(String[] args) {
    SpringApplication.run(BidderApplication.class, args);
}

}

yml: mybatis: mapper-locations: classpath:mappers/*.xml type-aliases-package: com.xxx.xxx.entity configuration: map-underscore-to-camel-case: true

mapper: mappers: com.xxx.xxx.dao.CommonMapper not-empty: false identity: MYSQL

pagehelper: helper-dialect: mysql reasonable: true supportMethodsArguments: true params: count=countSqlv

Error: 2019-01-13 22:44:37.411 [main] [INFO ] c.x.a.b.webapp.BidderApplication:663 - The following profiles are active: local 2019-01-13 22:44:37.431 [main] [INFO ] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:590 - Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7756c3cd: startup date [Sun Jan 13 22:44:37 CST 2019]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@10feca44 2019-01-13 22:44:38.812 [main] [ERROR] o.s.boot.SpringApplication:842 - Application run failed java.lang.NoSuchMethodError: tk.mybatis.spring.mapper.ClassPathMapperScanner.setMapperFactoryBean(Lorg/mybatis/spring/mapper/MapperFactoryBean;)V at tk.mybatis.spring.annotation.MapperScannerRegistrar.registerBeanDefinitions(MapperScannerRegistrar.java:56) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:357) at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:356) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:144) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:117) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:328) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) at com.xinmei.ad.bidder.webapp.BidderApplication.main(BidderApplication.java:85)

CookieNuts commented 5 years ago

I add MybatisAutoConfiguration.class and MapperAutoConfiguration.class to @Import values, but it isn't active. @abel533