こんにちは、コンテンツ・メディア第一事業部 前田です。
業務でSpring Bootを使って新しくプロジェクトを作成する機会がありましたので、新規プロジェクト作成、実行、設定ファイルの分け方についてまとめていきます。
Spring Bootとは
簡単にSpringプロジェクトを作成することができるフレームワークです。
Spring だと最初に様々な設定をする必要がありますが、Spring Bootには必要ありません。xml設定ファイルがそもそもありません。また、プロジェクトを起動するのにTomcatも必要ありません。jarファイルを使って、javaコマンドでアプリケーションを実行することが可能です。
Spring Bootで新規プロジェクトを作成する
環境
IDE | IntelliJ IDEA |
JDKバージョン | JDK 8 |
Mavenバージョン | 3.3.9 |
作成までの流れ
File→New→Project…からMavenを選択し、新規Project作成を選択します。
プロジェクトを作成できたら、pom.xmlにSpring Bootを追加します。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.0.2.RELEASE</version> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
spring-boot-starter-parent | Spring Bootの標準設定 |
spring-boot-starter-web | Spring MVCの機能が入っている |
これでSpring Bootの機能が使えるようになりました。
jarコマンドでプロジェクトを実行
Spring Bootではjarファイルを指定し、jarコマンドでプロジェクトを実行することができます。
まずはjarファイルを作成します。
mvn package
これでtarget配下にjarが作成されます。
注意点として、mavenのバージョンが3以上でないと以下のようなエラーとなります。
Error configuring: org.springframework.boot:spring-boot-maven-plugin. Reason: Unable to retr eve component configurator for plugin configuration
mavenのバージョンは3以上で実行しましょう。
jarを作成したらjarコマンドを実行します。
java -jar target/作成したjar
で実行できます。
起動できれば以下の様なログが流れます。
... . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/
起動時に適用する設定ファイルを指定したい
Spring Bootの設定ファイルはproperties形式とYAML形式があります。
ここではYAML形式で設定ファイルを作成することとします。
ymlファイルの名前を変更し、それを起動時に指定することで設定ファイルをわけることができます。
application-test.yml
の設定で起動したい場合、先程のjarコマンドで起動する際
java -jar target/作成したjar --spring.profiles.active=test
のように書きます。
つまり、
application-指定する名前.yml
java -jar target/作成したjar --spring.profiles.active=指定する名前
で設定ファイルを分けることができます。
感想
新規プロジェクト作成では設定でつまりがちで中々Hello Worldが出せない私ですが、Spring Bootではスムーズにプロジェクトを起動することができました。
参考
http://maplesystems.co.jp/blog/programming/18474.html
http://projects.spring.io/spring-boot/
http://www.techscore.com/blog/2014/05/01/spring-boot-introduction/