由于以下原因,我无法启动我的 Spring boot kotlin 应用程序:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Configuration class 'TestApplication' may not be final. Remove the final modifier to continue.
我知道@configuration类和@bean类不能是最终的,所以我在我的pom文件中添加了allopen插件:
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<configuration>
<args>
<arg>-Xjsr305=strict</arg>
</args>
<compilerPlugins>
<plugin>spring</plugin>
</compilerPlugins>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
如果我打包我的应用程序并运行它(java -jar(,它可以工作,但是当我尝试从 STS 启动它时,它将无法工作。
Kotlin 版本:1.2.71Kotlin eclipse 插件:0.8.13STS: 3.9.5
这个问题可以重复:
IntelliJ Idea 2017.3 无法启动 Kotlin Spring Boot App - @Configuration类可能不是最终的
或
使用过 kotlin-spring 插件,仍然得到类无法打开错误
.反正,我刚找到解决方案
你只需要将开放修饰符添加到 TestApplication kotlin 类
@SpringBootApplication
open class TestApplication
可能会解决您的问题。
我遇到了同样的问题。您必须在 Preferences > Kotlin > Compiler
下配置Kotlin
插件并启用 Compiler plugins
spring。
Kotlin 编译器配置对话框