SpringBoot 2.6でフィールドインジェクションを行うサンプル

2022年1月13日

環境
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」が表示されます

Spring Boot

Posted by arkgame