Spring 启动应用程序无法启动(IllegalStateException 无法评估 DevToolsDataSourceAutoConfiguration 的条件)
Spring Boot Application won't start (IllegalStateException could not evaluate condition on DevToolsDataSourceAutoConfiguration)
我尝试使用 IntelliJ 启动我的 Spring 引导应用程序。但是,无论我尝试实施何种解决方案来修复它,我似乎都无法使其正常工作。我相信它与 spring.autoconfigure
包有关,但根本问题对我来说仍然是个谜。
我正在尝试利用 Maven Multi Module System
和 Java Platform Module System
。下面是我的 pom.xml
、module-info.java
文件和项目结构。
项目结构
请注意,有一个 parent pom.xml
文件,每个 sub-module 都有自己的 pom.xml
文件。每个 sub-module 也有自己的 module-info.java
文件。
Parent pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1</version>
<name>Demo Project</name>
<description>Demo Project Description</description>
<properties>
<java.version>11</java.version>
</properties>
<!--Add each module here -->
<modules>
<module>webapp</module>
<module>persistence</module>
<module>facade</module>
<module>service</module>
<module>security</module>
<module>domain</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<mainClass>com.example.MainApplication</mainClass>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<!-- For testing -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
网络应用pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>parent</artifactId>
<groupId>com.example</groupId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<!-- <version>0.0.1</version>-->
<artifactId>webapp</artifactId>
<dependencies>
<!-- Add dependencies for `webapp` module here -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>facade</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>domain</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
webapp module-info.java
module webapp {
requires domain;
requires facade;
requires spring.web;
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
}
下面是我试过的:
所以当我 运行 应用程序时,我得到以下异常
Exception in thread "restartedMain" java.lang.IllegalAccessException: class org.springframework.boot.devtools.restart.RestartLauncher (in module spring.boot.devtools) cannot access class com.example.MainApplication (in module webapp) because module webapp does not export com.example to module spring.boot.devtools
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
at java.base/java.lang.reflect.Method.invoke(Method.java:558)
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
我为解决此问题所做的工作是将 webapp/module-info.java 从
更改为
module webapp {
}
到
open module webapp {
}
不过,后来我得到了以下异常
java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration due to javax/sql/DataSource not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
at spring.boot.autoconfigure@2.5.1/org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:54) ~[spring-boot-autoconfigure-2.5.1.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader$TrackedConditionEvaluator.shouldSkip(ConfigurationClassBeanDefinitionReader.java:489) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:140) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.8.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.1.jar:na]
at webapp/com.example.MainApplication.main(MainApplication.java:10) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.1.jar:na]
Caused by: java.lang.NoClassDefFoundError: javax/sql/DataSource
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration$DevToolsDataSourceCondition.getMatchOutcome(DevToolsDataSourceAutoConfiguration.java:183) ~[spring-boot-devtools-2.5.1.jar:na]
at spring.boot.autoconfigure@2.5.1/org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-2.5.1.jar:na]
... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.sql.DataSource
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
... 23 common frames omitted
我尝试设置 spring.devtools.restart.enabled=false
。随后出现相同的错误。
我尝试从依赖项列表中删除 spring-boot-devtools
。没有错误日志,但启动进程退出,错误代码为 0
我尝试添加 h2
数据库依赖项只是为了看看会发生什么。不好。
我尝试更改 spring-boot-devtools
<scope>
值,甚至将其注释掉。不好。
我尝试从自动配置中排除 DevToolsDataSourceAutoConfiguration.class
。不好。
我尝试将 exports com.example;
添加到 module-info.java。不好。
如果我 运行 mvn test
, mvn clean install
, mvn spring-boot:run
, 我没有得到一个错误,服务器是 运行宁就好了。
MainApplication.java
位于 webapp/src/main/java/com/example/MainApplication.java
.
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
为什么 spring.autoconfigure
试图找到一个 DataSource
? IntelliJ
的classpath 是不是乱了,我需要手动更新它的依赖?如果我配置了一个合适的数据库(例如 mssql
),我以后还会遇到这个问题吗?
最让我困惑的是,我通过输入 mvn spring-boot:run
命令没有错误触发服务器到 运行。老实说,这让我认为问题与 IntelliJ's
类路径设置有关,而不是项目结构和配置。
如有任何帮助,我们将不胜感激。谢谢
如下编辑module-info.java
解决了我的问题
open module webapp {
requires spring.web;
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
requires org.apache.tomcat.embed.core;
}
我尝试使用 IntelliJ 启动我的 Spring 引导应用程序。但是,无论我尝试实施何种解决方案来修复它,我似乎都无法使其正常工作。我相信它与 spring.autoconfigure
包有关,但根本问题对我来说仍然是个谜。
我正在尝试利用 Maven Multi Module System
和 Java Platform Module System
。下面是我的 pom.xml
、module-info.java
文件和项目结构。
项目结构
请注意,有一个 parent pom.xml
文件,每个 sub-module 都有自己的 pom.xml
文件。每个 sub-module 也有自己的 module-info.java
文件。
Parent pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1</version>
<name>Demo Project</name>
<description>Demo Project Description</description>
<properties>
<java.version>11</java.version>
</properties>
<!--Add each module here -->
<modules>
<module>webapp</module>
<module>persistence</module>
<module>facade</module>
<module>service</module>
<module>security</module>
<module>domain</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<mainClass>com.example.MainApplication</mainClass>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<!-- For testing -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
网络应用pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>parent</artifactId>
<groupId>com.example</groupId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<!-- <version>0.0.1</version>-->
<artifactId>webapp</artifactId>
<dependencies>
<!-- Add dependencies for `webapp` module here -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>facade</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>domain</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
webapp module-info.java
module webapp {
requires domain;
requires facade;
requires spring.web;
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
}
下面是我试过的: 所以当我 运行 应用程序时,我得到以下异常
Exception in thread "restartedMain" java.lang.IllegalAccessException: class org.springframework.boot.devtools.restart.RestartLauncher (in module spring.boot.devtools) cannot access class com.example.MainApplication (in module webapp) because module webapp does not export com.example to module spring.boot.devtools
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
at java.base/java.lang.reflect.Method.invoke(Method.java:558)
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
我为解决此问题所做的工作是将 webapp/module-info.java 从
更改为module webapp {
}
到
open module webapp {
}
不过,后来我得到了以下异常
java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration due to javax/sql/DataSource not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
at spring.boot.autoconfigure@2.5.1/org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:54) ~[spring-boot-autoconfigure-2.5.1.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader$TrackedConditionEvaluator.shouldSkip(ConfigurationClassBeanDefinitionReader.java:489) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:140) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.8.jar:na]
at spring.context@5.3.8/org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.8.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.1.jar:na]
at spring.boot@2.5.1/org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.1.jar:na]
at webapp/com.example.MainApplication.main(MainApplication.java:10) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.1.jar:na]
Caused by: java.lang.NoClassDefFoundError: javax/sql/DataSource
at spring.boot.devtools@2.5.1/org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration$DevToolsDataSourceCondition.getMatchOutcome(DevToolsDataSourceAutoConfiguration.java:183) ~[spring-boot-devtools-2.5.1.jar:na]
at spring.boot.autoconfigure@2.5.1/org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-2.5.1.jar:na]
... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.sql.DataSource
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
... 23 common frames omitted
我尝试设置
spring.devtools.restart.enabled=false
。随后出现相同的错误。我尝试从依赖项列表中删除
spring-boot-devtools
。没有错误日志,但启动进程退出,错误代码为 0我尝试添加
h2
数据库依赖项只是为了看看会发生什么。不好。我尝试更改
spring-boot-devtools
<scope>
值,甚至将其注释掉。不好。我尝试从自动配置中排除
DevToolsDataSourceAutoConfiguration.class
。不好。我尝试将
exports com.example;
添加到 module-info.java。不好。如果我 运行
mvn test
,mvn clean install
,mvn spring-boot:run
, 我没有得到一个错误,服务器是 运行宁就好了。MainApplication.java
位于webapp/src/main/java/com/example/MainApplication.java
.
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
为什么 spring.autoconfigure
试图找到一个 DataSource
? IntelliJ
的classpath 是不是乱了,我需要手动更新它的依赖?如果我配置了一个合适的数据库(例如 mssql
),我以后还会遇到这个问题吗?
最让我困惑的是,我通过输入 mvn spring-boot:run
命令没有错误触发服务器到 运行。老实说,这让我认为问题与 IntelliJ's
类路径设置有关,而不是项目结构和配置。
如有任何帮助,我们将不胜感激。谢谢
如下编辑module-info.java
解决了我的问题
open module webapp {
requires spring.web;
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
requires org.apache.tomcat.embed.core;
}