Estoy tratando de configurar @PropertySource para mi aplicación basada en Spring.
En Java, podría hacer algo como esto:
@PropertySource(value = {"application.properties","other.properties" }) arrayOf en Kotlin pero termino con una falta de coincidencia de tipo:
@PropertySource(value = arrayOf("application.properties", "other.properties"))¿Cuál es el camino correcto para ir aquí?
El parámetro de anotación de value se maneja de una manera especial en Kotlin (siguiendo su manejo especial en Java), y si tiene un tipo de matriz, Kotlin lo convierte en un vararg . Por lo tanto, la sintaxis correcta aquí es simplemente:
@PropertySource("application.properties", "other.properties")Si desea especificar el nombre del parámetro explícitamente, use el operador de expansión para expandir la matriz en varargs:
@PropertySource(value = *arrayOf("application.properties", "other.properties")) Para cualquier otro parámetro de anotación de matriz, simplemente debe usar arrayOf() normalmente.
Agrego esto en caso de que ayude a alguien...
Necesitaba varias instancias de la misma anotación, pero también necesitaba establecer otros atributos de la anotación.
@Configuration @PropertySources( PropertySource( value = ["classpath:consul.properties"]), PropertySource( value = ["file:/run/example/consul.properties"], ignoreResourceNotFound = true) )