SpringとSpring-Bootの時間経過で忘れてしまいそうな事をとりあえずメモしておくページ
開発環境系
ソース(リソースも含む)更新時にオートリロードさせる
spring-boot-devtoolsを使う。
maven or gradle の dependencies に設定する。
設定記述内容は↓参照。
Spring公式
※公式の設定通りにやっておけば、jar で固めた時、jar の中に devtools の jar は入らない(大事)。
EclipseからSpring-Bootを起動させる。
- STSを入れて、ツールバーのBootダッシュボードを開く
- ダッシュボード内のプロジェクトを右クリックして起動
※ツールバーにBootのダッシュボードがない場合は、
メニューのウインドウ > ビューの表示 > その他 で ダッシュボード で検索
※ダッシュボードはSpring-Bootのプロジェクトが勝手に認識される↓
実装系
@Configurationではなく、@importを使う
@SpringBootApplication に @Configuration がついてるので、自分で作るConfig系のクラスは全部、@SpringBootApplication が付与されているクラスから @Importで呼び出すことにして、@Confiurationをつけないこと
※実際には@Confiurationでも問題なさげだけど、知ってる人感がでる。
Starterが使用するBeanの設定@myBatis-starterでhikariCPを使いたくないとか
Starterは必要なBeanがDIコンテナに有るか無いかを判断して、なければ必要なBeanを生成するっていう動作になっている。
参考ページ:Spring BootのAutoConfigureの仕組みを理解する
※もしくは、Starterのソースを見る
なので、自分でBeanを作るとデフォルトで作られるBeanを打ち消せる。
例えば、MyBatisのstarterではDatasourceがない場合、HikariCPのDatasourceを作るようになっているが、HikariCPを使いたくない時は自分でDatasourceのBeanをDIコンテナに登録してしまえばOK。
例)↓をしておくと、HikariCPを使わなくなる。
@Bean
public DataSource datasource() {
MysqlDataSource ds = new MysqlDataSource();
// ~略~
// ※Datasourceの設定を普通に書く
return ds;
}
起動&リリース系
gradleで実行可能jarを作る&起動@eclipse
"gradleタスク"ウインドウの中から、
build > boorJar
を実行。
build/libs の中に jar でできてるので、その jar を使って、
java -jar 生成したjarファイル
で起動。
実行可能jarに引数で使用したいpropertiesファイルを指定する
java -jar jarファイル --spring.config.location=classpath:/default.properties
ちなみに、jarファイルがあるディレクトリに application.properties を置くと、置いた application.properties を読み込む。
※--spring.config.location の指定は不要
※とかっていう application.properties の読み込み優先順位も↓に書いてある