📚
SpringBootのアプリケーションでJdbcTemplateを実行時に作成して使用する
poolingでDBに接続しにいくが接続情報が毎回変わるみたいな処理を実装する際にJdbcTemplateを利用するのにハマったので備忘録です
手順
exclude = { DataSourceAutoConfiguration.class }
を設定することでSpringBootのDIで自動的にdataSourceを作成しないようにする必要がある。これをすることでアプリ起動時にDIを行おうとしてapplicaiton.ymlに接続情報がないからアプリ起動が失敗することを回避できる
コードは以下のようなものでOK
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
new JdbcTemplate(dataSource);
備考
大体のユースケースはこちらの方の記事に当てはまるのかなーと思うのでこの記事よりも動的に変えたい場合は今回の方法があるよ〜くらいの温度感です
[Spring Boot] 動的データソース変更
Discussion