[Spring] Bean을 수동으로 등록하는 방법

thingzoo·2023년 6월 27일
0

Spring

목록 보기
31/54
post-thumbnail

Bean 수동 등록

Bean 자동 등록

  • @Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록해줌
  • 일반적으로 @Component를 사용하여 Bean을 자동으로 등록하는 것이 좋다.
    • 프로젝트의 규모가 커질 수록 등록할 Bean들이 많아지기 때문에 자동등록을 사용하면 편리하다.
    • 비즈니스 로직과 관련된 클래스들은 그 수가 많기 때문에 @Controller, @Service와 같은 애너테이션들을 사용해서 Bean으로 등록하고 관리하면 개발 생산성에 유리하다.

Bean 수동 등록

  • 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋다.
    • 공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동등록한다.
    • 비즈니스 로직 Bean 보다는 그 수가 적기 때문에 수동으로 등록하기 부담스럽지 않다.
    • 또한 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점이 있다.

Bean 수동 등록 방법

@Configuration
public class PasswordConfig {

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
  • Bean으로 등록하고자하는 객체를 반환하는 메서드에 @Bean 설정

  • Bean을 등록하는 메서드가 속한 해당 클래스에 @Configuration 설정

  • 이렇게 하면 Spring 서버가 뜰 때 Spring IoC 컨테이너에 'Bean'으로 저장됨

    • 'Bean' 이름: @Bean이 설정된 메서드명
    // 1. @Bean 설정된 메서드 호출
    PasswordEncoder passwordEncoder = passwordConfig.passwordEncoder();
    
    // 2. Spring IoC 컨테이너에 빈 (passwordEncoder) 저장
    // passwordEncoder -> Spring IoC 컨테이너
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글