😸

SpringBootをeclipseに導入してサンプルコードを実行してみる。

2023/08/09に公開

Spring Bootとは

JavaのWeb開発を容易にするフレームワーク(便利なライブラリが詰まったパックのようなもの)

Springプロジェクトには色々ありますが、その中でも有名なSpring Frameworkの一部がSpring bootのようです。

ちなみに2023/07/24現在、Spring Bootの安定バージョンは3.1.2です。
(Cf.https://spring.io/projects/spring-boot#learn)

開発ツールとして「Spring tools 4」が存在します。

「Spring tools 4」導入

下記の3つの方法があります。

  1. VSCodeの拡張機能(Spring Tools 4 for Visual Studio Code)⇢エクステンションから追加可能
  2. Eclipseの拡張機能(Spring Tools 4 for Eclipse)⇢エクステンションから追加可能
  3. Theiaの拡張機能(Spring Tools 4 for Theia)⇢初めて聞いたIDE

プロジェクトの作成(eclipseの場合)

※eclipseは最新版を利用する。

  1. パッケージエクスプローラーから新規

2.処理の記述

サンプルコード

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {
    public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
    }
    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
      return String.format("Hello %s!", name);
    }
}

3.サーバーの起動
eclipseのBootダッシュボードビューワーから起動します。

SPRINGの用語

SpringBootApplicationアノテーション

アノテーションは注釈の意
つけたクラスがSpringBootのアプリケーションクラスであることを示します。

RestControllerアノテーション

記載したクラスがコントローラークラスであることを認識します。
RestController・・・Viewに移行せず、メソッドの戻り値がそのままレスポンスになる。APIなどに利用
Controller・・・ResponseBodyアノテーションを利用することで、RestControllerクラスと同様の働きをする。

GetMappingアノテーション

本アノテーションを設定した場合、リクエストがGetメソッドかつ、設定したURLにアクセスされた場合のみメソッドが実行される。
下記の場合、getメソッドでhttp:localhost:8080/helloにアクセスされた場合のみ実行されます。

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    	String a = "aaa";
      return String.format("Hello %s!", name);
    }

GETのときは、、、200で正常

POSTのときは、、、405で異常

PostMappingアノテーション

上記で記載したGetMappingアノテーションと、メソッドがPOSTのみ実行される版

RequestMappingアノテーション

クラスとクラスパスを紐付ける。
後述するメソッドのベースパスとして利用する?(余り使うタイミングないような、、、)
クラスに「@RequestMapping("/test")」と記載した場合、
http:/ドメイン/testでリクエストが可能になる。

@PutMapping、@DeleteMapping

メソッドがPUT、DELETEの場合に処理されることを明記するものですが、このメソッドは実務だと使わないと思います。(基本PUT?)

Discussion