[Spring Boot] 자바 코드로 직접 스프링 빈 등록하기

GyeongEun Kim·2021년 6월 12일
0

Spring Boot

목록 보기
11/12
post-thumbnail

본 게시물은 인프런 김영한 강사님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 듣고 개인 공부용으로 작성되었음을 알립니다.


이전 시간에는 컴포넌트 스캔을 통해서 스프링 빈을 등록하는 방법을 알아보았다. 이번에는 스프링 빈을 등록하는 코드를 직접 추가하는 방법을 알아보도록 할 것이다.
우선 MemberService에 대한 애노테이션들을 삭제해 준다. (@Service, @Autowired, @Repository/@Controller는 제외)
그리고 service패키지 내에 SpringConfig라는 자바클래스를 작성한다.

@Configuration
public class SpringConfig {
    @Bean //빈을 등록하겠다는 의미
    public MemberService memberService () {
        return new MemberService(memberRepository());
    } //생성자 매개변수에 memberRepository가 필요하므로 아래에 또 빈으로 등록해줌

    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
        //인터페이스는 new가 안되기때문에 구현체로 new
    }
}

이렇게 하면 MemberService와 MemberRepository 가 스프링 빈으로 등록이 된다.

실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용한다.
그리고 정형화 되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록한다.

profile
내가 보려고 쓰는 글

0개의 댓글