스프링으로 전환하기

jooog·2022년 3월 31일
0

스프링

목록 보기
20/26
post-thumbnail

🔎 AppConfig를 스프링 기반으로 변경

AppConfig에 설정을 구성한다는 뜻의 @Configuration을 붙여주고 각 메서드에 @Bean 을 붙여서 스프링 컨테이너에 스프링 빈으로 등록한다.

[AppConfig]

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Bean
    public MemberRepository memberRepository(){
        return new MemoryMemberRepository();
    }


    @Bean
    public MemberService memberService(){
        return new MemberServiceImpl(memberRepository());
    }

    @Bean
    public OrderService orderService(){
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }
}

[MemberApp]


import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MemberApp {

    public static void main(String[] args) {
//        AppConfig appConfig = new AppConfig();
//        MemberService memberService = appConfig.memberService();

        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        MemberService memberService = applicationContext.getBean("memberService", MemberService.class);

[OrderApp]

🔎 로그 살펴보기

스프링 빈에 제대로 등록된걸 확인할 수 있다.

🔎 스프링 컨테이너

ApplicationContext를 스프링 컨테이너라고 한다. 기존 코드에서는 AppConfig에서 개발자가 직접 객체를 생성하고 DI를 했지만 이번에는 스프링 컨테이너를 사용했다.

@Configuration이 붙은 클래스를 스프링 컨테이너는 설정 정보로 사용하며 @Bean에 등록된 메서드를 호출해서 반환된 객체를 스프링 컨테이너에 등록한다.

이 글은 김영한님의 스프링 핵심 원리 강의를 듣고 정리한 내용입니다.

0개의 댓글