[Spring Boot2.4.2] DI(依存性注入)を理解する

Syain.java (service)
L @ServiceでDIコンテナに登録する

package com.example.demo;
import org.springframework.stereotype.Service;

@Service
public class Syain {
	public String getName() {
		return "tanka";
	}
}

MainController.java
L Autowiredとは、自動的にクラスのプロパティ(setter)や、メンバ変数に値を設定する機能

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 MainController {
	@Autowired
	Syain syain;
	
	@GetMapping("/test1")
	public String write1() {
		return syain.getName();
	}
}

ほう、、、

### アプリ起動時にインスタンスを取得する
Syain.java

package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
 L @BeanはSpring起動時に設定の内容を取り込む
public class Syain {
	@Bean
	public String getName() {
		return "sato";
	}
}

TestApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

@SpringBootApplication
public class TestApplication {

	public static void main(String[] args) {
		ApplicationContext syain = new AnnotationConfigApplicationContext(Syain.class);
		SpringApplication.run(TestApplication.class, args);
	}

}

@Beanって起動時の設定のことか、豆の印象が強すぎてイマイチ頭に入って来んかった。。