Spring Bootとは、オープンソースのJavaベースのフレームワークです。マイクロサービスの開発に使用されます。
この記事の目次です。
1. Spring Bootとは
2. 特徴
3. Spring Boot CLI
4. Spring Bootプロジェクトの生成(スペルはInitializerではなくInitializr)
5. Tomcatにデプロイして動作させる方法
6. SpringBootのWebアプリケーションのコンテキストパス
Spring Bootとは、オープンソースのJavaベースのフレームワークです。マイクロサービスの開発に使用されます。
マイクロサービスは、開発者がサービスを独立して開発およびデプロイできるようにするアーキテクチャです。 実行されている各サービスには独自のプロセスがあり、これによってビジネス・アプリケーションをサポートするための軽量モデルが実現されます。
Spring Bootは、Java、Spring、MavenおよびGradle、RESTfulなWebサービス、などの関連技術が背景にあります。 導入を検討する際はこれらの知識を身に着けておく必要があります。
Apache Mavenは、Apache Antに代わるものとして作られたJava用プロジェクト管理ツールでです。
Spring Bootの特徴は、以下が挙げられます。
Spring Boot CLIはコマンドラインツールで、Groovyスクリプトを実行することができます。 Spring Bootコマンドラインインターフェイスを使用してSpring Bootアプリケーションを作成できます。 アプリケーションは、コマンドプロンプトで作成、実行、テストできます。
Spring SoftwareリポジトリからSpring CLIディストリビューションをダウンロードできます。
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-manual-cli-installation
たとえば、2.6.0の場合は以下のURLです。
https://repo.spring.io/ui/native/snapshot/org/springframework/boot/spring-boot-cli/2.6.0-SNAPSHOT
ダウンロードするファイルは以下のようなURLです。
https://repo.spring.io/ui/native/snapshot/org/springframework/boot/spring-boot-cli/2.6.0-SNAPSHOT/spring-boot-cli-2.6.0-20211117.110917-438-bin.zip
ダウンロード後、アーカイブファイルを解凍し、install.txtファイルに記載されている手順に従います。ただし、環境設定は必要ありません。
Windowsの場合、コマンドプロンプトでSpring Boot CLIのbinディレクトリに移動し、「spring –-version」コマンドを実行して、spring CLIが正しくインストールされていることを確認します。 コマンドを実行すると、次のようなSpring CLIのバージョンが表示されます。
Groovyは、Javaプラットフォーム上で動作する動的プログラミング言語です。 読み方は「グルービー」です。
Javaとの直接的な連携が特徴です。 例えばGroovyからすべてのJava SE APIや、Javaで書かれた任意のサードパーティ製のコンパイル済みのライブラリなどを呼び出すことができきます。 Javaと同様にC言語などで書かれたネイティブメソッドも呼び出すことができます。
Rest Endpointスクリプトを含む単純なgroovyファイルを作成し、スプリングブートCLIを使用してgroovyファイルを実行します。
以下のコードを記述したgroovyファイルをhello.groovyという名前で保存します。
@Controller class Example { @RequestMapping("/") @ResponseBody public String hello() { "Hello Spring Boot" } }
コマンドプロンプトで「spring run <hello.groovyのパス>」を実行します。
ブラウザで「http://localhost:8080」にアクセスすると「Hello Spring Boot」と表示されます。
WebフォームのSpring Initializrを利用してSpring Bootアプリケーションのひな型を作成ことができます。
まずはSpring InitializrのWebページ(www.start.spring.io)にアクセスします。
ビルド、Spring Bootのバージョンとプラットフォームを選択し、アプリケーションを実行するために、グループ、アーティファクト、および必要な依存関係を指定する必要があります。
必要事項を入力して、[Generate Project] ボタンをクリックすると、zipファイルがダウンロードできます。
たとえば、Maven Project、Java、2.6.1、Jar、Java 8を選択してダウンロードしたプロジェクトを解凍するとpom.xmlファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
demo/src/main/java/com/example/demo/の下にDemoApplication.javaがあり、mainメソッドが記述されています。
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
このクラスには、@SpringBootApplicationというアノテーションがあります。 これは、起動するSpring Bootアプリケーションのエントリ・ポイントを指定しています。
Spring BootアプリケーションのメインクラスファイルにHello Worldを返すRestエンドポイントを記述してみます。
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping(value = "/") public String hello() { return "Hello World"; } }
まず、クラスの先頭に@RestControllerアノテーションを追加し、次に、@RequestMappingアノテーションを使用してRequest URIメソッドを作成します。 そして、Request URIメソッドは「Hello World」という文字列を返すようにします。
上記をコンパイルするためには依存するクラスを取り込む必要があります。 pom.xmlに以下の赤字部分を追記します。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
コマンドプロンプトでMavenコマンドを使用して、Spring Bootアプリケーションを実行する実行可能なJARファイルを作成します。
mvn clean install
demoのtarget下もしくはインストール先にコピーされたJARファイル(例 demo-0.0.1-SNAPSHOT.jar)を実行します。
java -jar <JARファイル>
ブラウザで「http://localhost:8080」にアクセスすると「Hello World」と表示されます。
Spring Bootアプリケーションを使用すると、warファイルを作成してWebサーバーにデプロイできます。 ここでは、WARファイルを作成し、TomcatのWebサーバーにSpring Bootアプリケーションをデプロイする方法について説明します。
このページでは、Tomcatとはどのようなものか、簡単に解説しています。
Javaファイルのサンプルです。
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DemoApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DemoApplication.class); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping(value = "/") public String hello() { return "Hello World from Tomcat"; } }
pom.xmlに以下の赤字部分を追記します。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <start-class>com.example.demo.DemoApplication</start-class> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
mvn packageでWARファイルが生成できます。
mvn package
targetディレクトリにWARファイルが生成されます。
TomcatのwebappsディレクトリにできたWARファイル(例 demo-0.0.1-SNAPSHOT.war)を配置します。
Tomcatを起動(もしくは再起動)して、ブラウザで「http://localhost:8080/demo-0.0.1-SNAPSHOT/」というようなURLでアクセスすると「Hello World from Tomcat」と表示されます。
SpringBootのWebアプリケーションのコンテキストパスは、application.propertiesで指定できます。
server.servlet.context-path=<コンテキストパス>
コンテキストパス(contextpath)についてまとめています。
この記事の更新履歴です。
当サイトについて
Apache Tomcat
Apache HTTP Server
JSP/Servlet
基礎知識
アプリケーションコンテキスト / コンテキスト / コンテキストパス / コンテキスト名.xml / コンテキストルート / サーブレット / マイクロサービス / ルート
appBase属性 / ApplicationContext / getContextPath / JSP / Maven / PageContext / root / server.xml / Servlet / Spring Boot / Tomcat
サイト内のページ
Copyright (C) 2013-2023 コンテキストパスの設定の仕方. All Rights Reserved. Loarding…