【今更ながらSpring BootでWEB開発 #1】プロジェクトの作成

Web

なぜ今更ながらSpring Bootを始めたのか

筆者はJavaの開発経験こそあれどJavaのフレームワークは一切触ったことがないのです。これからJavaでの開発、特にWebアプリケーションの開発を続けるのであれば、フレームワークを使えば少しは開発効率も上がるのではないか、という考えのもと今更ながらSpring Bootを始めます。

これから学んだことを少しずつこのブログでアウトプットできればと思っています。

STS(Spring Tool Suite)のインストール

以下から開発用のツールであるSTSをダウンロードします。

Spring Tools 4 is the next generation of Spring tooling
Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visua...

筆者は普段VSCodeを愛用しているのですが、STSに関していえば素直にEclipseを選択しました。

jarファイルがダウンロードされるので、実行すると「sts-x.x.x.RELEASE」というフォルダが作成されます。フォルダ内の「SpringToolSuite4.exe」を実行するとSTSが起動します。

初回起動の場合「workspace」の場所を尋ねられますが、後で変更できるのでとりあえずはそのままにします。次回以降は表示されないように「Use this as the default and do not ask again」にチェックを入れます。

Gradleのインストール

GradleはJavaのビルドツールの1つです。Mavenというものもあるのですが、今回はこちらでプロジェクトを作成していきます。

メニューバー > Help > Eclipse MarketPlace…を選択します。

2.検索ボックスに「Gradle」と入力し、検索します。

検索結果にある「Buildship Gradle Integration 3.0」の「Installed」を選択します。

3.「Buildship Gradle Integration 3.0」の「Update」を選択します。

選択後同意を求められますので同意します。

インストール完了後は再起動を求められますので再起動してください。

ダークテーマへの変更

これは完全に好みの問題なのですが、個人的にダークテーマが好きなので「Darkest」をインストールします。Gradleの手順と同じくEclipse MarketplaceでDarkestと検索し、インストールします。

再起動をするとテーマの選択を求められますので、「Darkest Dark Theme」を選択します。

するとEclipseがダークテーマに!アイコンもDarkest Dark Theme用に変わります。おそらくデフォルトでもダークテーマはあったと思うのですが、こちらの方が好みなのです。

プロジェクトの作成

メニューバー > File > New > Spring Starter Projectを選択します。

2プロジェクトの情報を入力します。

Nameにプロジェクト名を入力します。

TypeはデフォルトではMavenになっているのですが、今回はGradle(Buildship 3.x)を選択します。

Java Versionはプロジェクトに合わせて選択してください。

3必要なライブラリを選択します。今回は個人的に必要最低限なものを選択しています。

  • Spring Boot DevTools

サーバーの自動更新など開発に便利な機能が備わっています。

  • Thymeleaf

テンプレートエンジンとして使用します。

  • Spring Web

MVCWebアプリケーションを作るのに必要になります。

 

 

4「finish」を選択してしばらく待つとプロジェクトが作成されます。

  • src/main/java

バックエンド(サーバーサイド)の処理を定義していきます。

  • src/main/resources

フロントエンドの処理を定義していきます。

  • src/main/resources/application.properties

データベースの情報などプロジェクトの情報を設定します。

  • src/test/java

JUnitを用いたテストを定義していきます。

ページの表示

せっかくプロジェクトを作成したので、細かい話はなしにしてページを表示してみましょう。

コントローラーとビューの作成

次のような構造になるようにパッケージとクラスファイルを作成します。

  • src/main/java

com.example.demoの直下にapp.indexパッケージを作成。

com.example.demo.app.indexにIndexControllerクラスを作成。

  • src/main/resources

templatesにindex.htmlを作成。

まず作成した「index.html」にページ(ビュー)として表示する内容を記述します。ここは適当で大丈夫です。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <h1>MyApp Home Page</h1>
</body>
</html>

次に作成したIndexController.javaを編集します。

package com.example.demo.app.index;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class IndexController {

  @GetMapping
  public String index(Model model) {
    return "index";
  }
}

少しだけ簡単に解説をしておきます。Spring Bootではアノテーション(@)によっていろいろな情報を付加していきます。

  • @Controller

クラスがコントローラーであることを示します。細かい話は割愛しますが、ここではコンテキストパスによって処理を実行する役割を持つクラスということにしてください。

  • @RequestMappng(“/”)

コントローラーに対応するコンテキストパスを設定します。今回の場合はルート(/)にアクセスした場合にコントローラーが起動するというイメージです。

  • @GetMapping

@GetMappingを付加したメソッドは、Getメソッドによってアクセスされた場合に処理するメソッドとして扱われます。POSTメソッドによる処理を実装したい場合は、@PostMappingを使用します。

@GetMappingは引数としてコンテキストパスを指定することができます。例えば@GetMapping(“/index”)とした場合は、http://host:port/index としてアクセスした場合に処理が実行されます。

今回Getメソッドでルートにアクセスした場合、indexメソッドが実行されます。引数のModelについては今回は割愛します。返値としては表示したいページとして、先程作成したHTMLファイルの名前を指定します。

プロジェクトの起動

プロジェクトを起動するには、プロジェクトフォルダを右クリック > Run As > Spring Boot App を選択します。

サーバーが起動したら、ブラウザで「localhost:8080」にアクセスしてみてください。

「index.html」の内容が表示されれば成功です。

あとがき

今回はプロジェクト作成から簡単なページを表示するまでをしました。Spring Bootについては私もこれから学んでいくので、スローペースながらも少しずつ更新していこうと思っています。

 

- Spring Bootのおすすめ書籍はコチラ -

コメント

タイトルとURLをコピーしました