Les plugins

Les plugins Maven pour Spring version Java sont aussi disponibles pour Spring Kotlin. Le plugin all-open a été fait car Spring a besoin de surcharger les méthodes cglib pour ses proxys. Kotlin déclare ses classes et ses méthodes finales par défaut, ce qui ne permet pas à Spring de surcharger. Il faut donc systématiquement déclarer les API des @Bean publiques via l’opérateur open ou utiliser le plugin Kotlin Spring qui le fait alors pour vous.

Il est possible d’utiliser le plugin all-open Maven ou Gradle pour rendre automatiquement open (publique) les classes et les méthodes :

Dans le code suivant, sans le plugin Maven, nous devons mettre open pour spécifier que la classe et la méthode sont publiques car elles sont privées par défaut avec Kotlin, contrairement à ce qui se passe avec Java.

@SprinBootApplication  
open class Application {  
  @Bean  
  open fun fonction1() = ...  
} 

avec :

@SprinBootApplication  
  
class Application {  
  @Bean  
  fun fonction1() = ...  
} 

Build Maven

<build> 
  <sourceDirectory>${project.basedir}/src/main/kotlin</ 
sourceDirectory> 
  <testSourceDirectory>${project.basedir}/src/test/kotlin</ 
testSourceDirectory> 
  <plugins> 
   <plugin> ...
couv_EP4JASP.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Contrôleur Spring MVC, Spring Boot en Kotlin
Suivant
Points clés