1. Spring Bean이란?
Spring의 Bean은 Spring IOC Container가 관리하는 객체들을 의미한다.
자바 애플리케이션은 동작을 제공하는 객체들로 이루어져있다.
이 때 객체들은 독립적으로 동작하는 것보다 서로 상호작용하며 동작하는 경우가 많다. 이렇게 상호작용하는 객체를 ‘객체의 의존성(dependency)’이라고 표현한다.
스프링에서는 스프링 컨테이너가 객체들을 생성하고 객체끼리 의존성을 주입하는 역할을 한다. 스프링 컨테이너가 생성한 객체들을 Bean이라고 하며 Bean은 Spring에서 사용하는 어플리케이션 객체라고 이해할 수 있다.
Spring Bean을 사용하면 여러 클래스에서 따로 new 연산을 하여 동일한 객체를 만들 필요가 없이 spring IOC Container에게 알려주기만 하면 객체를 만들어주기 때문에 메모리 활용에 효과적이다. Spring IOC Contaioner에서 가지고 있는 동일한 인스턴스만 사용하기 때문에 많은 이점이 있다.
2. Spring Bean을 등록하는 방법은?
Spring Bean을 등록하는 방법에는 크게 두 가지가 있다.
1) Component Scan으로 등록하기
component scan은 anotation 인 @Component를 명시하여 Bean에 추가하는 방법이다.
class 위에 anotation을 추가해주면 자연스럽게 Bean에 객체로 추가가 된다.
자주 사용하는 anotation 인 @Controller, @Service, @Repository 에 모두 @component가 포함되어 있다.
결론적으로 해당 anotation을 등록하면 바로 Spring Bean으로 포함되어 객체를 사용할 수 있게 된다.
2) Java Code로 등록하기
클래스를 생성하고 anotaion @Configuration 과 @Bean 을 사용하여 직접 자바로 넣어줄 수 있다.
class위에 @Configuration을 붙여주고, 메소드에 @Bean을 붙여서 구현해주면 된다.
이때 메소드에서 Return되는 객체가 Spring Bean에 등록된다.
'Spring > Springboot' 카테고리의 다른 글
📝 스프링(Spring) 예외(Exception)처리 1 (0) | 2022.11.18 |
---|---|
📝 AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 개념 (0) | 2022.11.16 |
📝 gradle이란 무엇이며 어떠한 장점이 있을까? (0) | 2022.11.16 |
📝 restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요? (0) | 2022.11.16 |
📝 Controller, Service, Repository 가 무엇인가요? (0) | 2022.11.16 |