SpringBootをeclipseに導入してサンプルコードを実行してみる。
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つの方法があります。
- VSCodeの拡張機能(Spring Tools 4 for Visual Studio Code)⇢エクステンションから追加可能
- Eclipseの拡張機能(Spring Tools 4 for Eclipse)⇢エクステンションから追加可能
- Theiaの拡張機能(Spring Tools 4 for Theia)⇢初めて聞いたIDE
プロジェクトの作成(eclipseの場合)
※eclipseは最新版を利用する。
- パッケージエクスプローラーから新規
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の場合に処理されることを明記するものですが、画面処理ではなくAPI処理などで利用するものかと思います。
Discussion