Spring Tool Suite:@Configuration 类可能不是最终的。删除 final 修饰符以继续
Posted
技术标签:
【中文标题】Spring Tool Suite:@Configuration 类可能不是最终的。删除 final 修饰符以继续【英文标题】:Spring Tool Suite: @Configuration class may not be final. Remove the final modifier to continue 【发布时间】:2019-06-29 18:56:05 【问题描述】:由于以下原因,我无法启动我的 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.71 Kotlin eclipse 插件:0.8.13 STS:3.9.5
【问题讨论】:
【参考方案1】:这个问题可以重复:
IntelliJ Idea 2017.3 unable to start Kotlin Spring Boot App - @Configuration class may not be final
或
Used kotlin-spring plugin, still getting class not open error
。 无论如何,我刚刚找到了解决方案
您只需要在 TestApplication kotlin 类中添加 open 修饰符
@SpringBootApplication
open class TestApplication
可能会解决您的问题。
【讨论】:
如果您说它可能是重复的,请改为标记帖子。 以上问题相似,所以没有标记 将 open 修饰符也添加到方法中。 这不是 kotlin-maven-allopen 的用途吗?【参考方案2】:我遇到了同样的问题。必须在Preferences > Kotlin > Compiler
下配置Kotlin
插件并启用Compiler plugins
spring。
Kotlin Compiler Configuration Dialog
【讨论】:
以上是关于Spring Tool Suite:@Configuration 类可能不是最终的。删除 final 修饰符以继续的主要内容,如果未能解决你的问题,请参考以下文章
[置顶] Spring Boot系列教程一:Eclipse安装spring-tool-suite插件
在spring官网上下载历史版本的spring插件,springsource-tool-suite