Crear un propio DataSource con properties de resorte

Intento crear mi propio DataSource partir de application-prod.properties .

Ahora sé que mi application.properties se lee, ya que recoge el perfil activo prod (que se muestra en la console)

En mi application-prod.properties tengo lo siguiente:

 jdbc.url=jdbc:postgresql://localhost:5432/myDb jdbc.username=root jdbc.password=root jdbc.driverClassName=org.postgresql.Driver 

Ahora, si cambio el prefijo, mi console arroja un error de time de compilation. Could not resolve Spring property placholder que tiene sentido. Esto también muestra que el comstackdor realmente está comprobando si el @Value existe dentro del file de properties .

 @Component open class BaseDAO( //@Value("\${jdbc.url}") private val url: String, //@Value("\${jdbc.username}") private val username: String, //@Value("\${jdbc.password}") private val password: String ) { @Value("\${jdbc.url}") lateinit open var url: String @Value("\${jdbc.username}") lateinit open var username: String @Value("\${jdbc.password}") lateinit open var password: String lateinit open public var datasource: DataSource; open fun getDs(): DataSource { return HikariCP.init(name="pool1", url = url, username = username, password = password) } } 

Ahora, como pueden ver, intenté pasar @Value en el constructor. Pero como BaseDAO en todas mis classs, se quejó de que el constructor estaba vacío ( class SomeDAO : BaseDAO() ).

El problema que ocurre ahora es que mis properties url , username y password no se están inicializando.


¿Hay alguna manera de resolver las properties (sin el uso de @Autowinetworking en todas las inicializaciones / classs)?

Lo único que quiero es leer las properties de ese file y usarlas, no buscando 'Spring mejores prácticas' sino una solución