@Bean

2024. 5. 11. 14:48TIL

✔오늘 배운 중요한 🔑 point

  • IOC Conatiner가 관리하는 객체를 Bean이라고 하고 @Component로 Bean 등록이 가능하다.

🎯 오늘 배운 내용

Spring Bean

Bean이란?

객체의 생성과 생명주기를 외부에서 제어하는 디자인 패턴을  IOC라고 하는데

Famework에서 IOC를 제공할때, 이를 IOC Container라고 부른다!!

그 IOC Container가 관리하는 객체를 Spring Bean이라고 한다!

 

어떻게 Bean으로 등록을 할까? 그냥 일반 class 들이 자동으로 등록이 될까?

annotation을 사용해서 spring이 알수 있게 하면 된다!

 

import org.springframework.stereotype.Component

@Component
class Playstation5(private val game:Game) {

    fun gameTitle():Game{
        game.getName()
        return game
    }
}

 이런식으로 Playstaton5 class(객체) 위에 @Component를 명시해줌으로서

Playstation5라는 객체를 Spring Bean으로 등록하겠습니다~ 라고 Spring에게 알려주는 것이다

 

 위 사진에 보이다시피 외부에서 주입되는 객체인 Game은 bean으로 등록되지 않았기 때문에 이러한 경고창이 발생한다

당연하게도 Playstation5라는 class만 bean으로 등록이 되었기때문에 Playstation5의 외부에서 주입되는 객체 또한 bean으로 등록을 해야한다

이런식으로 외부에서 주입되는 객체 또한  @Component로 Bean에 등록을 해주면 경고창이 사라지게 된다

 

 

🤔 어떻게 활용할까?

@Component 뿐만아니라 @RestController나 @RequestMappling등 여러 Annotation등이 있는데 이는 직접 코딩을 하며 학습을 진행하면서 공부해보자

📓 오늘의 한줄

"Some of us think holding on makes us strong, but sometimes it is letting go."

- Hermann Hesse -

 

 

'TIL' 카테고리의 다른 글

예외처리를 전역적으로  (0) 2024.05.13
RequestMapping 너는 내가 담당한다  (0) 2024.05.12
DI는 중요해  (0) 2024.05.10
Swagger  (0) 2024.05.09
Tactical Design & REST API  (0) 2024.05.08