「Spring 徹底入門」の開発環境を IntelliJ IDEA で構築する

「Spring 徹底入門 Spring Framework による Java アプリケーション開発」の開発環境を IntelliJ IDEA で構築する方法をメモっとく。

# 新しいプロジェクトを作成する

IntelliJ IDEA を起動して Create New Project をクリックする。

![welcome-to-intellij-idea.png](https://qiita-image-store.s3.amazonaws.com/0/67627/b907ac13-779b-0fb6-cd06-c80c3d040a92.png)

Maven プロジェクトを選択し Create from archetype をチェックし maven-archetype-webapp を選択して Next をクリックする。

![new-project-1.png](https://qiita-image-store.s3.amazonaws.com/0/67627/e936209f-a16d-18c2-a7bf-10ffafaff14f.png)

GroupId と ArtifactId を付与して Next をクリックする。

![new-project-2.png](https://qiita-image-store.s3.amazonaws.com/0/67627/69f419db-c314-ddb0-3d00-e3b32f46a3e7.png)

内容を確認して Next をクリックする。

![new-project-3.png](https://qiita-image-store.s3.amazonaws.com/0/67627/9f78f9e4-dcc3-e0a4-8b7d-6ec7d8679a75.png)

Project name を確認して Finish をクリックする。

![new-project-4.png](https://qiita-image-store.s3.amazonaws.com/0/67627/7f46bd72-e83a-952f-3bdc-2f85024ef554.png)

プロジェクトが作成されると Maven タスクが実行されるので完了するまで待とう。

# ファイルを修正・追加する

pom.xml と web.xml を修正する。また include.jsp を追加する。

## pom.xml

pom.xml を下記のように修正する。

```xml:pom.xml
<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>firstapp</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>firstapp Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.spring.platform</groupId>
                <artifactId>platform-bom</artifactId>
                <version>2.0.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-jstlel</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>firstapp</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
```

## web.xml

web.xml を下記のように修正する。

```xml:src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <page-encoding>UTF-8</page-encoding>
            <include-prelude>/WEB-INF/include.jsp</include-prelude>
        </jsp-property-group>
    </jsp-config>
</web-app>
```

## include.jsp

include.jsp を下記のような内容で追加する。

```jsp:src/main/webapp/WEB-INF/include.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
```

## Maven プロジェクトを再インポートする

プロジェクトツリーのプロジェクト名を右クリックして Maven > Reimport をクリックする。

![maven-reimport.png](https://qiita-image-store.s3.amazonaws.com/0/67627/06ba6105-fa66-9014-4f77-9d5d76ba258c.png)

# アプリケーションを Tomcat にデプロイする

IntelliJ IDEA でアプリケーションを Tomcat にデプロイする。

## Tomcat をインストールする

Homebrew で Tomcat をインストールするには下記のコマンドを実行する。

```shell-session
$ brew install tomcat
```

## Tomcat を追加する

メニューの Run > Edit Configurations をクリックする。

Run/Debug Configurations が表示されたら＋のアイコンをクリックする。

![run-debug-configurations-1.png](https://qiita-image-store.s3.amazonaws.com/0/67627/74712b72-7cad-f8a0-1023-80c45633a8c3.png)

設定一覧の N items more (irrelevant) をクリックして続きを表示させて Tomcat Server を選択し Local をクリックする。

![add-new-configuration-1.png](https://qiita-image-store.s3.amazonaws.com/0/67627/317de2e0-1560-9431-e916-6b2628dde47d.png)

![add-new-configuration-2.png](https://qiita-image-store.s3.amazonaws.com/0/67627/2ca86d34-6ef6-4e3a-2858-55518513de21.png)

![add-new-tomcat-server-configuration.png](https://qiita-image-store.s3.amazonaws.com/0/67627/6dfa1928-fa1b-b83e-bb5f-fcff2473400e.png)

Tomcat Home を指定して OK をクリックする。

![tomcat-server.png](https://qiita-image-store.s3.amazonaws.com/0/67627/b229abf4-f629-886c-0515-14b0d0426771.png)

追加された Tomcat Server を選択し Deployment タブをクリックする。

![run-debug-configurations-2.png](https://qiita-image-store.s3.amazonaws.com/0/67627/64203753-7548-4a99-9f0c-9717ab59de35.png)

＋のアイコンをクリックし Artifact をクリックする。

![run-debug-configurations-3.png](https://qiita-image-store.s3.amazonaws.com/0/67627/dad35ee4-52ba-be27-ba10-bb5a2ab10adb.png)

![run-debug-configurations-4.png](https://qiita-image-store.s3.amazonaws.com/0/67627/22b05b7f-deb6-9081-81ee-a36240251470.png)

デプロイするプロジェクト名を選択する。通常はホットデプロイしたいので exploded がついてる方を選択して OK をクリックする

![select-artifacts-to-deploy.png](https://qiita-image-store.s3.amazonaws.com/0/67627/9630cb1f-334f-f3ad-1b3d-98bcce39a114.png)

これでアプリケーションがデプロイ対象として追加された。

![run-debug-configurations-5.png](https://qiita-image-store.s3.amazonaws.com/0/67627/a3c1cf17-ab0f-6065-d787-294e5ae28505.png)

最後にファイルを保存したときにホットデプロイされるように On frame deactivation を Update classes and resources に変更しておこう。

![run-debug-configurations-6.png](https://qiita-image-store.s3.amazonaws.com/0/67627/abc6cdf6-292e-6577-cd61-ce0b0f90e555.png)

# Tomcat を起動してアプリケーションにアクセスする

メニューの Run > Run 'Tomcat v8.5' を実行して Tomcat を起動する。もしくは Application Servers ペインの Tomcat v8.5 を選択して実行アイコンをクリックして起動する。

サーバーの起動後にブラウザーが起動して Hello World! というページが表示されれば開発環境の構築は完了である。