isTKS™program ≫ SpringBoot + Maven + intelliJでHelloWorldまで

SpringBoot + Maven + intelliJでHelloWorldまで

2019.10.30

SpringBoot + Maven + intelliJでHelloWorldまで

まずは、Javaとmavenをinstallしておく(MacでのHomebrewでのインストール例)

$ brew cask install java
$ java -version
> java version "1.8.0_191"
$ javac -version
> javac 1.8.0_191
$ brew install maven
$ mvn --version
> versionが出ればOK

## SpringBoot公式からdownloadする
https://spring.io/projects/spring-boot
> Quick startの箇所の
Bootstrap your application with Spring Initializr.
から画面遷移して、
https://start.spring.io/で、ダウンロードできる(現時点での最新安定版は2.2.0)。

# Search dependencies to add
の箇所で、SpringWebだけチェックしてダウンロードする。

ダウンロードしたzipを解凍したルートディレクトリにてMavenでビルド。

$ mvn clean install -D skipTests -f pom.xml

を実行。

## 次に、intelliJを起動して、
「import Project」から「解凍したルートディレクトリ」を選択。
Mavenを選択して、その他は全て「next」を押下して進める。

intelliJのセッティング(Prefference)を開き、左側の検索で、「Annotation」を入力して、
「Enable annotation proccessing」にチェックを入れて適用。

で、intelliJのディレクトリツリーで、
src/main/java/xxx/xxxx/xxxxxApplication.java
を右クリックして、「Run XXXXXXXXX..main()」を実行。

(intelliJ内で、「Auto Importしますか?」みたいなダイアログがでる場合はYes(Enable)にしておく。
=> AutoImportが有効だとpom.xmlに記載したライブラリを反映するようになる)

以上で、
http://localhost:8080でSpringBootの画面をみることができる

## 次にHelloWorldを表示
=> は任意のパッケージ名

## まずは、Rest系(API用)のHelloWorld

$ mkdir -p ./src/main/java/<your_package_directory>/controller
$ vi ./src/main/java/<your_package_directory>/controller/HelloController.java
package <your_package_directory>.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

以上で、
http://localhost:8080/helloで、SpringBootの画面(Rest系)を確認できる。

## 次に、View画面用にHTMLでHelloWorld
=> 公式標準推奨されているThymeleafを使うことにする

$ cd ./解凍したルートディレクトリ
$ vi pom.xml
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
  </dependency>
</dependencies>
$ mvn clean install -D skipTests -f pom.xml
$ mkdir -p ./src/main/java/<your_package_directory>/controller
$ vi ./src/main/java/<your_package_directory>/controller/IndexController.java
package <your_package_directory>.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {

    @GetMapping("/")
    public String myIndex() {
        return "index/top.html";
    }

    @GetMapping("/about")
    public String About() {
        return "about/mySample.html";
    }
}

$ mkdir -p ./src/main/resources/templates/about
$ vi ./src/main/resources/templates/about/mySample.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<a href="/">/</a><br>
<a href="/about">/about</a>
</body>
</html>

$ mkdir -p ./src/main/resources/templates/index
$ vi ./src/main/resources/templates/index/top.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<a href="/">/</a><br>
<a href="/about">/about</a>
</body>
</html>

以上で、
http://localhost:8080/
http://localhost:8080/about
の画面遷移を確認できる。

  • このエントリーをはてなブックマークに追加