これまで .NET を使って開発してきたのですが、仕事で Java を使う機会があったので、「はじめてのSpring Boot」を読みました。
はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る
どんな書籍なのか?
この書籍は、これから Spring Boot を学ぼうとしている初心者に向けた入門書です。
Spring Framework の DI やデータアクセスといった基礎から始まり、Spring Boot の良さを解説しながら、ステップバイステップで Web アプリケーションを構築できます。
Spring Boot は、公式ドキュメントが充実していますし、ネット上にも情報は山ほどありますが、体系的に日本語で学習できるところが良かったです。
- Spring Boot とは
- 速習 Spring Framework
- Spring Boot による Web アプリ開発
- PaaS 「Cloud Foundry」にデプロイ
- Spring Boot におけるテスト
書籍で解説するサンプルプログラムや誤植については、GitHub で公開されているため、すぐにアプリケーションを動かすこともできますし、コードのタイプミスで悩むこともないので安心です。
github.com
Spring Boot アプリケーションを Azure にデプロイする
この書籍では Cloud Foundry にデプロイする方法が紹介されていますが、ここでは Azure にデプロイしてみます。
Azure Web App にデプロイする
Azure Web App にデプロイするためには、Spring Boot アプリケーションを配布するための jar ファイルと Web.config が必要です。
まずは、Maven のコマンドで jar ファイルを作成します。
$ ./mvnw package
次に、jar ファイルのパスを設定した Web.config を作成します。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="%JAVA_HOME%\bin\java.exe" arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar "%HOME%\site\wwwroot\demo-0.0.1-SNAPSHOT.jar""> </httpPlatform> </system.webServer> </configuration>
Azure ポータルから Advanced Tools(Kudu)を開いて、jar ファイルと Web.config を「d:¥home¥site¥wwwroot」にアップロードすれば、デプロイできます。
Azure Web App for Containers にデプロイする
Azure Web App for Containers にデプロイするためには、Spring Boot アプリケーションをコンテナ化する必要があります。
FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/helloworld-0.0.1-SNAPSHOT.jar app.jar ENV JAVA_OPTS="" EXPOSE 8080 ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
Dockerfile を作成し、Docker コマンドでビルドしたイメージを Docker Hub にプッシュしておきます。
$ docker build -t thara0402/sbapp:latest ./
$ docker push thara0402/sbapp:latest
Azure ポータルから Docker Container の画面で、プッシュした Docker イメージの URL を指定すれば、デプロイできます。
まとめ
この書籍は、Java や .NET など何かしらの言語での開発経験があり、これから Spring Boot を学びたい人にお勧めできる内容です。
まずは、アプリケーションを作って感触をつかみ、そのあとに、書籍にでてくる用語を詳しく調べたり、Spring Boot の公式ドキュメントを利用して理解を深めていくのが良いと思います。