0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IntellJ×Spring BootでHello World表示してみた

Posted at
//HelloController.java
package org.example;

// GETメソッドに対応するリクエストを扱うためのアノテーション
import org.springframework.web.bind.annotation.GetMapping;
//HTTPリクエストを受けてデータを返すクラスにつけるアノテーション
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello") //ブラウザで/helloにアクセスしたらこのメソッドを呼ぶ
    public String hello() { //文字列を返すので、Stringと定義
        return "Hello World!";
    }
}

@RestControllerについて
Spring Boot ではこのクラスが「Webからのリクエストを受け付ける人」だと教えるための魔法のタグ。
もしつけないと、/hello にアクセスしても 404 Not Found になる

@GetMappingについて
このメソッドは HTTP の GET リクエストを処理しますよ」 と Spring に教える魔法のタグ

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

ブラウザで http://localhost:8080/hello にアクセス
GET リクエストが来た → Spring がこのメソッドを呼ぶ
メソッドの返り値 "Hello World!" をブラウザに返す

・基本的にAPIの入り口はControllerクラスに作成する
・各 API はメソッドとして実装する
@GetMapping("/hello") → GET リクエスト用
@PostMapping("/submit") → POST リクエスト用 など
・メソッドの返り値がそのままレスポンスになる

// Main.java
package org.example; //このクラスがどのパッケージに属するのか宣言

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication //ここからアプリが始まると教える。
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

Spring Bootはmain()メソッドからスタートするので、必ずmain()メソッドを持つクラスが必要。
今回はMain.java

@SpringBootApplication
→Springにここからアプリを起動すると教える。

SpringApplication.run(Main.class, args);
→Springの仕組み(DIコンテナ、Webサーバーなど)を全部立ち上げる。
つまり、この1行でアプリ全体が「動く状態」になる。

JSON形式でデータを返却

API開発の現場では、文字列ではなくJSONでデータを返すのが基本中の基本。
実務のSpring Boot開発 = 「ControllerでJSONを返す」

package org.example;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;

@RestController
public class HelloController {

    @GetMapping("/hello") //ブラウザで/helloにアクセスしたらこのメソッドを呼ぶ
    public  Map<String,String> hello() {
        return Map.of("message", "Hello JSON!", "status", "success");
    }
}

上記のように書くことでJSON形式でデータが返却される。

public Map<String,String> hello()

public → 他のクラスやSpringからアクセスできる公開メソッド
Map → 戻り値の型。
Map は「キーと値」の組み合わせでデータを表すJavaのコレクション
String, String は キーと値の両方が文字列 であることを示す
hello() → メソッド名

// メソッドの中身
return Map.of("message", "Hello JSON!", "status", "success");

Map.of(...) → Java 9以降の便利な書き方で、定数のMap(キーと値の組み合わせ)を作る
Spring BootがこのMapを自動で JSONに変換 してブラウザやクライアントに返す

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?