経緯
- SpringBoot+MavenでのHelloWorldをIntelliJ IDEAのUltimateエディションで書いてみたのと同じことを、Communityエディションで書くとどうなるかやってみた。
感想
- Ultimateほどはサクッとは書けなかった。
- Ultimateの場合、
Spring Initializr
によって、- 依存関係をリストから選べる
- pom.xmlの必要な設定を自動的に書いてくれる
- 実行/デバッグの設定を自動的に作ってくれる
- アプリケーションクラスを自動的に作ってくれる
- ちなみに
Spring Initializr
はWebサイトからも利用できるので、これとCommunityを組み合わせてUltimateに近い作り方ができなくもない。
環境
- Windows10 Home
- IntelliJ IDEA Community 2017.2.4
- JDK1.8
あと、使用したSpringBootのバージョンは、この時点でのCURRENT GAの1.5.7
手順
IDEAを起動する
新規プロジェクトの作成
- すでに何らかのプロジェクトが開いていたら、
File
-New
-Project
... - プロジェクトが開いていない状態だったら、
Create New Project
をクリック -
New Project
の画面が開く
- 左のリストから
Maven
をクリック -
Project SDK
はPCに入っているJDKを適当に選択 -
Next
をクリック
-
GroupId
とArtifactId
を適当に入力 -
Next
をクリック
-
Project name
とProject location
を適当に設定 -
Finish
をクリック - プロジェクトが作成される
- 画面右下に
Maven projects need to be imported
と表示されていたら、Enable Auto-Import
をクリックしておくと、pom.xmlを書き換える都度、必要な依存関係を自動的にインポートしてくれる。
pom.xmlの記述
pom.xmlが画面に表示されているので、ここにspring-boot-starterの親要素の指定、依存関係の指定(spring-boot-starter-web
とspring-boot-starter-thymeleaf
を追加)、およびビルド時にMavenでspring-bootを利用できるようにするためのプラグインの指定を追記する。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
アプリケーションクラスの作成
- 画面左のProjectビューの
demo
プロジェクトのツリーを開き、src
-main
-java
を右クリックし、New
-Java Class
を選択 -
Name
にcom.example.demo.DemoApplication
と入力し、OK
をクリック - クラス宣言の上に
@SpringBootApplication
アノテーションを付加 - main()メソッドを記述する
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
コントローラの作成
-
demo
プロジェクトのツリーのcom.example.demo
パッケージを右クリックし、New
-Java Class
を選択 -
Name
にcontroller.HelloController
と入力し、OK
をクリック - クラス宣言の上に
@Controller
アノテーションを追加 - クラスの中に
getHello()
メソッドを追加
@GetMapping
public String getHello() {
return "hello";
}
テンプレートの作成
-
demo
プロジェクトツリーのsrc
-main
-resources
フォルダを右クリックし、New
-HTML File
を選択 -
Name
にtemplates/hello
と入力し、OK
をクリック -
<body>
タグにHello World!
と書く - あと、
<meta>
タグがこのままだと実行時にthymeleafのエラー(タグが閉じてないよ!エラー)になるので、末尾を/>
に書き換える
アプリケーションの起動
-
DemoApplication
アプリケーションクラスを右クリックし、Run DemoApplication.main()
を選択 - アプリケーションが起動され、コンソールログがつらつらと表示され始める
- そのうち
Tomcat started on ...
と表示され、内部のTomcatが起動されたことがわかる - 最後に
Started DemoApplication in ...
と表示されれば起動完了
動作確認
- ブラウザから、
localhost:8080
にアクセスする
- できた。