はじめに
今回は、Spring Bootを使ってWebアプリケーションを作成する際の開発環境の準備について説明します。
開発環境の準備
Spring Initializr
Spring Initializrを使って、プロジェクトの雛形を作成します。これはSpring Bootでプロジェクトを始める際、ビルドツールや開発言語、依存性の設定などをGUIで設定できるサービスです。作成されたフォルダをIDEで開けばすぐに開発を始められるので便利ですね。
ビルドツールはMaven、Javaは最新の22を使用します。Javaのインストールについては割愛します。
また、今回は簡易的な家計簿アプリを作成します。
依存性は右上のDependenciesで設定します。(後からpop.xmlを編集すれば追加可能です。)今回は以下の5つを追加するので、軽く説明します。
-
Spring Web
Webアプリケーションを作成する際に必要となるAPIを利用できます。Tomcatも内包していますので、Webアプリケーションの開発をする際には入れましょう。 -
Thymeleaf
HTMLファイルをベースとしたテンプレートエンジンで、動的なWebページを効率的に生成することができます。JSPと違って、htmlファイルなのでフロントエンドの開発者で完結するため、チーム開発における利点が大きいです。 -
MySQL Driver
データベースのドライバーを追加できます。今回は無料で利用できるMySQLを選択しました。他にもSQLServerやOracle、PostgreSQLなど一般的なデータベースのドライバーは選択できるようです。 -
JDBC API
JDBCは、Javaでデータベースにアクセスするための標準APIです。データベースとの接続、データの操作、トランザクション処理などを行うことができます。 -
Lombok
LombokはJavaで煩雑なコードを解消してくれるライブラリです。getter/setterなどを省略できるのでコード整理と時短できる点で非常に便利です。今回紹介という形で一応入れましたが、なくても開発自体は可能です。
以上でGENERATEボタンを押せば、ダウンロードフォルダにzipファイルが作成されます。
IDEで開いてみる
先ほどDLしたzipファイルを解凍してIDEで開いてみると、プロジェクトのひな形が作成されていることが確認できます。
IDEは今回、InteliJ IDEAを指定しました。普段はEclipseで開発することが多いのですが、今回は経験のため普段使わないIDEを使用することにしました。
pop.xmlを開いてみると、Dependenciesで設定した項目がdependenciesタグ内に記述されていることがわかります。
<?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>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test</groupId>
<artifactId>houseHoldAccountBook</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>HouseHoldAccountBook</name>
<description>家計簿アプリケーションデモ</description>
<properties>
<java.version>22</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</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>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
実行環境の準備
プログラムを実行するための実行環境の設定を行います。
ファイル→プロジェクト構造からSDKと言語レベルを設定します。SDKは22,言語レベルは18までしかなかったので18に設定しました。
次に、実行環境の設定をします。右上の環境の追加を押すと表示されるダイアログの左側から、アプリケーションを指定します。
名前には任意の名前、ビルドと実行の下の欄はjavaのバージョンと、mainが記述された実行クラスを指定します。 今回はSpring Initializrを使用しているため、src/main/配下の指定したパッケージ内に、プロジェクト名Application.javaというファイルが作成されていますので、そちらのクラスを指定します。
この状態で一度実行してみると以下のエラーが出ました。
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
これはデータソースの設定ができていないことを示すメッセージです。src/main/resources/application.propertiesを設定します。この設定は以下の記事を参考にさせていただきました。
まとめ
以上で開発環境の準備が整いました。次回は実際に機能を実装していきたいと思います。