DataSource
をapplication-prod.properties
から作成しようとしています。春のプロパティを持つ独自のデータソースを作成
それは私のapplication-prod.properties
私は、次ているでは(コンソールに示されている)prod
アクティブなプロファイル
を拾うんので、今私は、私のapplication.properties
が読み込まれます知っている:今、私は変更する場合
jdbc.url=jdbc:postgresql://localhost:5432/myDb
jdbc.username=root
jdbc.password=root
jdbc.driverClassName=org.postgresql.Driver
私のコンソールは、コンパイル時エラーCould not resolve Spring property placholder
を意味します。これは、コンパイラが実際に@Value
が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)
}
}
ここからわかるように、私は@Value
をコンストラクタに渡してみました。しかし、私はextend
BaseDAO
すべてのクラスで、コンストラクタが空(class SomeDAO : BaseDAO()
)であると不平を言っていました。
今起こる問題は、私の性質url
、username
、およびpassword
が初期化されていないことです。
properties
を解決する方法があります(すべての初期化/クラスの@Autowired
を使用せずに。)
私が望む唯一のことは、そのファイルからプロパティを読み込み、それらを使用する、しないことです「春のベストプラクティス」を探していますが解決のために
しかし、これは '@ Value'が変数を設定していないという問題を解決しますか? – Ivaro18