为什么Kotlin类不需要在Spring Boot中打开了

在关于Kotlin和Spring Boot的最新video: Spring Tips:Bootiful Kotlin Redux 。 Spring Boot的Application类看起来像:

 class SpringBootKotlinApplication fun main(args: Array) { } 

我记得Kotlin必须注明在Spring Boot中是open

 open class SpringBootKotlinApplication 

看这个video 。

那么为什么现在没有必要注释? Spring Boot是否需要现在扩展Application类?

当你看一个这样的演讲者的示例项目之一,你会注意到一个编译器插件 ,在这种情况下, kotlin-maven-allopen 。 这在官方文档中有描述:

例如,当你使用Spring的时候,你不需要打开所有的类,而只需要使用@Configuration或者@Service等特定的注解来注解类。 全部打开允许指定这样的注释。

由于SpringBootAnnotation作为一个元annotation符合这个条件,所以不需要在源代码中open这个类,因为编译器会在后台执行它。