프로그래밍/JAVA Spring

[Spring 스프링] Spring Core - Bean과 Configuration

hectick 2023. 4. 24. 16:45

 

Bean

 

빈은 IoC 컨테이너에 의해 관리되는 객체이다.

빈이 생성되려면 설정 메타데이터(configuration metadata)가 컨테이너에게 제공되어야 한다.

 

설정 메타데이터에는 다음과 같은 것들이 있다.

1. 클래스 이름: 빈의 실제 구현 클래스

2. 빈 동작 설정 요소: 빈이 컨테이너에서 어떻게 동작해야 하는지를 나타낸다. (scope, lifecycle callbacks 등)

3. 다른 빈에 대한 참조: 빈이 동작하는 데 다른 빈을 참조할 수 있다.

4. 새로 생성된 객체에 설정할 기타 설정 세팅들 (예를 들면 커넥션 풀을 관리하는 빈에서 생성할 연결의 수, 풀의 사이즈 등)

 

그리고 설정 메타데이터는 다음 속성들로 변환된다. [공식문서 바로가기]

 

 

 

Configuration

 

IoC 컨테이너에게 설정 메타데이터를 제공하는 방법, 즉 설정(Configuration) 방법에는 3가지 방법이 있다.

 

1. 어노테이션 기반: @Component(+@Service, @Respository, @Controller) 어노테이션으로 설정

2. 자바 기반: @Configuration과 @Bean 어노테이션을 이용하여 자바 구성 클래스를 작성하여 설정

3. XML 기반: XML 기반의 설정 파일로 설정

 

만약 스프링부트를 이용한다면, 개발자가 따로 설정을 해주지 않아도 스프링이 자동 설정(auto configuration)을 해주는 것들도 있다. 예를 들면 dataSource 같은 것들이 있다 ~