Câblage automatique d’un non-primitif avec des annotations de type printemps
@Autowired
lateinit var metaDataService: MetaDataService
travaux.
Mais ça ne marche pas:
@Value("\${cacheTimeSeconds}")
lateinit var cacheTimeSeconds: Int
avec une erreur:
le modificateur lateinit n'est pas autorisé pour les types primitifs.
Comment transférer automatiquement des propriétés primitives dans des classes kotlin?
@Value ("\ $ {cacheTimeSeconds}") lateinit var cacheTimeSeconds: Int
devrait être
@Value("\${cacheTimeSeconds}")
val cacheTimeSeconds: Int? = null
Kotlin compile Int à int en code Java. Spring voulait des types non primitifs pour injection, vous devriez donc utiliser Int?/Booléen?/Longue? et etc. Les types nullables que kotlin compile en Integer/Boolean/etc.