SpringBoot 2.6でフィールドインジェクションを行うサンプル
環境
Windows10 64bit
Spring Boot 2.6.2
Spring Tool Suite 4
JDK 11
説明
@Component
インスタンスを Spring 管理下に置くため、クラスに付けるアノテーション。
@Autowired
Spring 管理下のオブジェクトの中から、適切なものを変数に自動でセットしてもらうため、インスタンス変数に付けるアノテーションです。
@RestController
JsonやXML等を返すWebAPI用のコントローラで使用します。
Viewに遷移しないのでメソッドの戻り値はレスポンスのコンテンツになります。
書式
@Autowired
クラス名 インスタンス名;
使用例
1.Controllerクラスの定義
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CftController { //フィールドインジェクション @Autowired private UserService user; @GetMapping("/cftt") public String funA() { // インスタンスのメソッドを呼び出す return user.getAddr(); } }
2.UserService.javaの定義
package com.example.demo; import org.springframework.stereotype.Component; @Component public class UserService { public String getAddr() { return "大阪oosaka"; } }
3.プロジェクトを右クリックして、「実行(R)」->「Spring Boot アノテーション」をクリックします
4.動作確認
http://127.0.0.1:8080/cftt
画面に「大阪oosaka」が表示されます