[Spring] 빈(Bean)

봉성은·2025년 4월 1일
0

스프링(Spring)

목록 보기
2/4
post-thumbnail

💡 빈(Bean)이란?

스프링의 IoC 컨테이너가 관리하는 재사용 가능한 자바 객체

빈은 컨테이너에 공급하는 메타데이터(XML 파일)에 의해 생성된다.
컨테이너는 이 메타 데이터를 통해 Bean의 생성, 생명주기, 의존성 등을 알 수 있다.

빈의 속성

  • class(필수) - 정규화된 자바 클래스 이름
  • id - Bean의 고유 식별자
  • scope - 객체의 범위(Singletoen, Prototype)
  • constructor-arg - 생성 시 성성자에 전달할 인수
  • property - 생성 시 Bean Setter에 전달할 인수
  • init-method - 생성 후 의종관계를 적용한 뒤에 호출되는 초기화 메소드 명
  • destroy-method - 생명주기가 끝나서 제거하기 직전에 호출되는 메소드 명
  • lazy-init - 스프링 컨테이너를 생성할때 빈을 같이 생성하는 것이 아닌, 실제 빈을 사용할 때 까지 최대한 생성을 지연 처리
<bean id="" class=""></bean>

<bean id="" class="" scope=""></bean>

<bean id="" class="">
	<property name="" value=""/>
</bean>

<bean id="" class="" init-method=""></bean>

IoC 컨테이너에 Bean을 등록하는 방법

1. 어노테이션(Annotation)을 통한 자동 등록

  • @Component가 포함되어 있는 @Controller, @Service, @Repository 등의 어노테이션들을 이용해 빈으로 등록
@Controller
public class TodoControler{
}

@Service
public class TodoService{
}

@Repository
public interface TodoRepository extends JpaRepository<Todo, Long>{
}

2. 코드를 통한 직접 등록

  • 설정 클래스와 그 안의 메소드를 만들고, 클래스 위에는 @Configuration을, 메소드 위에는 @Bean을 선언
@Configuration
public class TodoConfig{
	@Bean
    public TodoRepository todoRepository(){
    	return new MemoryTodoRepository;
    }
}

이렇게 등록한 빈들은 의존성 주입(DI)을 통해 사용한다.

profile
안녕하세요

0개의 댓글