cómo usar annotations de spring como @Autowinetworking in kotlin?

¿Es posible hacer algo como seguir en Kotlin?

@Autowinetworking internal var mongoTemplate: MongoTemplate @Autowinetworking internal var solrClient: SolrClient 

Para asegurarse de que esto es posible, tiene pocas opciones, sugiero constructor anotado, pero lateinit también funciona, y tal vez sea útil en algunos casos:

Lateinit:

 @Component class YourBean { @Autowinetworking lateinit var mongoTemplate: MongoTemplate @Autowinetworking lateinit var solrClient: SolrClient } 

Constructor:

 @Component class YourBean @Autowinetworking constructor( private val mongoTemplate: MongoTemplate, private val solrClient: SolrClient ) { // code } 

Constructor con muelle 4.3:

 @Component class YourBean( private val mongoTemplate: MongoTemplate, private val solrClient: SolrClient ) { // code } 

La versión de constructor verifica todas las dependencies en el momento de creación del bean y todos los campos inyectados – val, en el otro lado los campos inyectados tardíos pueden ser solo var, y tienen poca huella de time de ejecución. Y para probar la class con contructor, no necesitas reflexión.

Campo de golf:

  1. Documentación sobre lateinit
  2. Documentación sobre constructores
  3. Desarrollar aplicaciones Spring Boot con Kotlin

Sí, las annotations Java son compatibles en Kotlin principalmente como en Java. Una gotcha es que las annotations en el constructor primario requieren la palabra key 'constructor' explícita:

Desde https://kotlinlang.org/docs/reference/annotations.html

Si necesita anotar el constructor principal de una class, debe agregar la palabra key constructor a la statement del constructor y agregar las annotations que tiene delante:

 class Foo @Inject constructor(dependency: MyDependency) { // ... } 
  • no hay constructor pnetworkingeterminado para la entidad JPA con Kotlin, incluso con el complemento noarg
  • ¿Cómo get el país del usuario para una request HTTP en Back-end?
  • Java Stream con :: nuevo en Kotlin
  • SpringMVC RequestMapping: Añadiendo .xml a la ruta del controller para la respuesta xml
  • Al utilizar tanto publishOn como subscribeOn en un flujo, no ocurre nada
  • @Autowinetworking no funciona en el parámetro de método
  • Iniciación de la class Kotlin Spring con aspecto
  • Spring JPA no puede asignar un campo con un setter personalizado en una class de datos de Kotlin
  • Spring Injecting util: map en Kotlin con tipo de security
  • No tiene acceso al controller de arranque de Spring, pero tiene acceso a index.html
  • El uso de Spring HATEOAS ControllerLinkBuilder y Kotlin arroja IllegalArgumentException