Por qué la class Kotlin ya no necesita abrirse en Spring Boot

En un último video sobre Kotlin y Spring Boot: Spring Tips: Bootiful Kotlin Redux . La class de Application de Spring Boot se ve así:

 class SpringBootKotlinApplication fun main(args: Array<String>) { } 

Recuerdo que un Kotlin tiene que estar anotado como open en Spring Boot.

 open class SpringBootKotlinApplication 

Mira este video

Entonces, ¿por qué no es necesario anotar open ahora? Spring Boot necesita extender la class de aplicación ahora?

Cuando eche un vistazo a uno de los proyectos de ejemplo del hablante como este , notará un complemento de compilation , en este caso kotlin-maven-allopen . Se describe en los documentos oficiales:

Por ejemplo, cuando usa Spring, no necesita que todas las classs estén abiertas , sino solo las classs anotadas con annotations específicas como @Configuration o @Service. All-open permite especificar tales annotations.

Como SpringBootAnnotation , como una metaanotación, está cumpliendo esa condición, no hay necesidad de hacer que la class se open en el código fuente ya que el comstackdor lo hace detrás de las escenas.

  • JsonView en Spring + Kotlin
  • Kotlin NoClassDefFoundError con el método @RequestMapping de spring
  • Reactor Spring 5 - Emisión de elementos cada 1 segundo
  • Deshacerse de lateinit al convertir la testing Spring Java8 Junit a Kotlin
  • ¿Cómo inyectar con IoC en las funciones de nivel superior de Kotlin? ¿Incluso uso contenedores de IoC?
  • Usar un object Kotlin en una class generada en time de ejecución
  • La variable de instancia de Kotlin es nula cuando se accede por la class proxied de Spring
  • Spring Security múltiples proveedores de authentication exitosos
  • ¿Cómo hacer que Cucumber deje que Spring inyecte classs definitivas en el paso?
  • Kotlin y DynamoDBMapper SaveBehavior
  • Hacer reference al valor y a los methods de llamada en types de class generics