プログラムでカスタムDataSourceを作成したいと思います。これは、application.yamlでハードコードするのではなく、実行時に安全なストレージからパスワードを取得したいからです。Spring Boot + SpringデータでカスタムDataSourceを作成する方法
私はmydb.password.keyの値を持つカスタムデータソースmyapp.datasource.passwordを持っています。 ApplicationListenerの使用私はキーをmydb.password.keyを使って秘密をロードし、myapp.datasource.passwordの値を設定しています。
myapp:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb?autoReconnect=true&characterEncoding=utf8
username: myuser
password: mydb.password.key
さて、HibernateJpaAutoConfigurationはパスワードとしてmydb.password.keyを使用してDBに接続しようとすると、起動時に失敗しています。
私はDBの自動設定クラス
@SpringBootApplication
(exclude={
DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class
})
を除外しようとしたが、それは、この例外をスロー
org.springframework.beans.factory.NoSuchBeanDefinitionException:という名前のBeanのEntityManagerFactoryを「利用可能
解決方法どんな助けでも大歓迎です!あなたはエンティティマネージャファクトリBeanを提供する必要が
おかげ
ありがとうございます。この解決策は問題を解決しました! –