Help us understand the problem. What is going on with this article?

Spring-Bootネタ

More than 1 year has passed since last update.

SpringとSpring-Bootの時間経過で忘れてしまいそうな事をとりあえずメモしておくページ

開発環境系

ソース(リソースも含む)更新時にオートリロードさせる

spring-boot-devtoolsを使う。
maven or gradle の dependencies に設定する。
設定記述内容は↓参照。
Spring公式

※公式の設定通りにやっておけば、jar で固めた時、jar の中に devtools の jar は入らない(大事)。

EclipseからSpring-Bootを起動させる。

  1. STSを入れて、ツールバーのBootダッシュボードを開く
  2. ダッシュボード内のプロジェクトを右クリックして起動

※ツールバーの赤枠部分がダッシュボード↓
image.png

※ツールバーにBootのダッシュボードがない場合は、
メニューのウインドウ > ビューの表示 > その他 で ダッシュボード で検索

※ダッシュボードはSpring-Bootのプロジェクトが勝手に認識される↓
image.png

実装系

@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 の読み込み優先順位も↓に書いてある

Spring公式

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away