开发者社区> 问答> 正文

与SpringBoot原生注解冲突

com.alibaba druid-spring-boot-starter 1.1.6

当springboot项目不需要使用数据源的时候添加以下代码

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

来解决Cannot determine embedded database driver class for database type NONE

  • druid-spring-boot-starter 会使这个注解失效。
  • 我们的项目模块依赖可能存在一些问题,我会去掉相关的依赖
  • 只是在这里提出这个问题,不知道是 druid-spring-boot-starter的问题还是咋回事。

原提问者GitHub用户maskleo

展开
收起
山海行 2023-07-05 20:33:16 72 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    您可以尝试以下几种方法:

    修改自定义注解的命名:首先,您可以尝试修改自定义注解的命名,避免与Spring Boot原生注解或其他第三方库的注解冲突。例如,如果您的自定义注解名称为@EnableWebMvc,可以将其改为@MyEnableWebMvc,避免与Spring MVC中的原生注解冲突。

    使用自定义注解的完整路径:如果您的自定义注解名称与Spring Boot原生注解或其他第三方库的注解名称相同,您可以尝试在使用自定义注解时,使用完整的注解路径。例如,如果您的自定义注解名称为@EnableWebMvc,可以使用@com.example.MyEnableWebMvc的方式来使用自定义注解,避免与Spring MVC中的原生注解冲突。

    使用注解排除:如果您的自定义注解与Spring Boot原生注解或其他第三方库的注解冲突,您可以尝试使用@ConditionalOnMissingBean或@AutoConfigureAfter等注解排除原生注解的自动配置。例如,如果您的自定义注解需要替换Spring Boot中的@EnableWebMvc注解,可以使用@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)或者@AutoConfigureAfter(WebMvcAutoConfiguration.class)来排除原生注解的自动配置。

    2023-07-30 14:05:44
    赞同 展开评论 打赏
  • 看源码解决了,启动也屏蔽掉 DruidDataSourceAutoConfigure.class

    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, DruidDataSourceAutoConfigure.class})

    原回答者GitHub用户maskleo

    2023-07-06 11:52:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多