gpt4 book ai didi

java - Spring Boot - EnableAutoConfiguration 与排除不起作用

转载 作者:IT老高 更新时间:2023-10-28 13:55:09 24 4
gpt4 key购买 nike

我正在使用最新的 Spring Boot 版本,我正在尝试设置应用程序,但我想禁用 DataSource 配置。我的配置类如下所示:

@Configuration
@ComponentScan
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class ApiApplicationConfig { }

但是当我运行应用程序时,我得到以下堆栈跟踪:

Caused by: org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.getDriverClassName(DataSourceProperties.java:137)
at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource(DataSourceAutoConfiguration.java:116)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 31 more

我是否在配置中遗漏了任何内容以完全禁用数据源配置?我将手动设置一个数据源,所以我不想让 spring 为我处理这个。

最佳答案

这似乎是一种奇怪的情况,DataSourceAutoConfiguration.NonEmbeddedDataSourceCondition 找到了 DataSource 类加载器,但没有找到 DataSource。在运行集成测试时,我们在 spring-boot 1.2.2 中遇到了这个问题。

无论如何,我们运行了 gradle dependencies 来找出在 tomcat-jdbc 中拉动的内容,最终将我们的 spring-boot-jdbc 依赖项替换为普通的 spring-jdbc。如果您的依赖项中没有 tomcat-jdbc,则可能有助于在 DataSourceAutoConfiguration.NonEmbeddedDataSourceCondition.getDataSourceClassLoader() 中设置断点以找出它找到的驱动程序。

关于java - Spring Boot - EnableAutoConfiguration 与排除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com