Kotlin-allopen og Spring

1. Oversigt

I Kotlin, alle klasser er standard som standard hvilket ud over sine klare fordele kan være problematisk i forårsprogrammer. Kort sagt, nogle områder i foråret fungerer kun med ikke-endelige klasser.

Den naturlige løsning er at manuelt åbne Kotlin-klasser ved hjælp af åben nøgleord eller at bruge kotlin-allopen plugin - som automatisk åbner alle klasser, der er nødvendige for at Spring fungerer.

2. Maven-afhængigheder

Lad os starte med at tilføje Kotlin-Allopen afhængighed:

 org.jetbrains.kotlin kotlin-maven-allopen 1.1.4-3 

For at aktivere pluginet skal vi konfigurere kotlin-allopen i build sektionen:

 ... ... kotlin-maven-plugin org.jetbrains.kotlin 1.1.4-3 foråret 1.8 kompilere kompilere kompilere test-kompilere test-kompilere test-kompilere org.jetbrains.kotlin kotlin-maven-allopen 1.1.4-3 

3. Opsætning

Lad os nu overveje SimpleConfiguration.kt, en simpel konfigurationsklasse:

@Configuration klasse SimpleConfiguration {}

4. Uden Kotlin-Allopen

Hvis vi bygger vores projekt uden pluginet, får vi vist følgende fejlmeddelelse:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Konfigurationsproblem: @Configuration klasse 'SimpleConfiguration' er muligvis ikke endelig. Fjern den endelige modifikator for at fortsætte.

Den eneste måde at løse det på er at åbne det manuelt:

@Configuration åben klasse SimpleConfiguration {}

5. Inkl Kotlin-Allopen

Åbning af alle klasser til foråret er ikke særlig praktisk. Hvis vi bruger pluginet, vil alle nødvendige klasser være åbne.

Vi kan tydeligt se, at hvis vi ser på den kompilerede klasse:

@Configuration offentlig åben klasse SimpleConfiguration offentlig konstruktør () {}

6. Konklusion

I denne hurtige artikel har vi set, hvordan man løser problemet med "klasse kan ikke være endelig" i Spring og Kotlin.

Kildekode til denne artikel kan findes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found