我能够从IntelliJ 2017.3推出Spring Boot Kotlin应用程序.在最后一次IntelliJ修复更新后,我无法从IDE启动该应用程序,获得此异常:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Configuration class 'AccessConfig' may not be final
Run Code Online (Sandbox Code Playgroud)
我可以像往常一样从终端开始: java -jar xxxx.jar
这没有任何意义,因为我在Gradle配置中使用了必要的Kotlin Spring插件:
buildscript {
ext {
kotlinVersion = '1.2.21'
springBootVersion = '2.0.0.RC1'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.2'
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
}
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply …Run Code Online (Sandbox Code Playgroud) 尽管添加了kotlin-spring插件,但我得到的课程不能是最终的,需要开放.插件的整个目的是不要手动将open关键字添加到每个类.
请指导我使用Kotling-Spring插件处理下面的代码.
的build.gradle
buildscript {
ext.kotlin_version = "1.1.2"
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}
apply plugin: "kotlin"
apply plugin: "kotlin-spring"
apply plugin: "kotlin-noarg"
apply plugin: "idea"
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile"org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile "org.springframework:spring-context:4.3.8.RELEASE"
testCompile "org.springframework:spring-test:4.3.8.RELEASE"
testCompile "junit:junit:4.11"
}
Run Code Online (Sandbox Code Playgroud)
AppConfig.java
@Configuration
class AppConfig {
@Bean
fun game(): Game {
return BaseballGame(redSox(),cubs())
}
@Bean
fun redSox(): Team {
return RedSox()
}
@Bean
fun cubs(): Team {
return Cubs()
}
} …Run Code Online (Sandbox Code Playgroud)