티스토리 뷰

Spring에서 Bean이란 Spring IoC 컨테이너(Bean Factory)에 의해 관리되는 Java Object를 Bean이라고 하며

Bean 설정소스를 로드하고 생성된 Bean을 제공하며 기본적으로 '싱글톤' 으로 관리한다.

 

만약 개발자가 new 연산자로 객체를 생성했을때 그 객체는 Spring IoC 컨테이너에 의해 관리되지 않기 때문에

Bean이라고 할 수 없다.

 

Spring Bean을 등록하는방법은 @Bean, @Configurtaion, @Component 3가지 어노테이션을 사용하면 되는데

각 어노테이션은 어느 상황에 사용해야 되는지 살펴보겠다.

 

 

1. @Bean

 

 

임의의 클래스를 생성하여 @Bean 어노테이션을 붙혀주면 된다

단, 여기서 주의할 점은 해당 어노테이션을 선언한다해도 제대로 동작하지 않는다.

해당 클래스에 @Configuration 이라는 어노테이션을 선언해줘야 하는데 이 어노테이션은 이름에도 나와있다싶이

스프링한테 이 클래스가 설정파일이라는걸 알려주기 위함이다.

 

@Bean 어노테이션은 개발자가 직접 제어가 불가능한 라이브러리를 사용할때나 초기설정을 하기위해 사용된다.

java.util 패키지에서 제공하는 Map 인터페이스는 개발자가 직접 제어를 할 순 없지만 위 사진과 같이 초기설정을

할 수 있다.

 

 

2. @Component

개발자가 직접 개발한 클래스를 Bean으로 등록하고싶을땐 해당 어노테이션을 사용하면 된다.

예를들어 두개의 정수를 전달받아 덧셈을 처리하는 기능을 개발하고자하 할때 @Component를 사용해주면 된다.

 

 

그리고 @Bean과 @Component 어노테이션을 선언할 수 있는 곳도 다르다.

아래의 사진을 보게되면 @Bean은 Method, @Component는 Type에만 선언할 수 있으며 그 외에 명시되지않은 곳에서

선언하게되면 컴파일 에러를 내뱉게 된다.

 

 

이제 직접 등록한 빈이 제대로 동작이 되었는지 Test를 작성해보자 !!

 

 

Test 결과

정상적으로 빈이 등록된게 확인되었다. !

 

스프링을 공부하면서 얕게 알았던 내용들을 정리해보는 시간을 가졌는데 아직도 정리할게 너무 산더미처럼 쌓였다.ㅠ

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함