스프링 핵심원리 기본편5 - 스프링으로 전환하기
본문 바로가기

TIL/스프링 핵심원리 - 기본편 with 인프런(김영한님)

스프링 핵심원리 기본편5 - 스프링으로 전환하기

반응형

안녕하세요

 

오늘은 지금까지 만든 소스를 스프링으로 전환을 해보겠습니다.

 

가장 먼저 Appconfig에 @Configuration 어노테이션을 달아주고 @Bean 어노테이션을 통해 스프링 컨테이너에 값을 저장시킵니다.

 

1
2
3
4
5
6
7
8
@Configuration
public class AppConfig {
    
    @Bean
    public MemberService memberService() {
    return new MemberServiceImpl(memberRepository());
    }
}
cs

위와 같이 모든 메서드에 @Bean을 해줍니다.

 

그다음 잘 동작하는지 확인하기 위해 먼저 MemberApp 자바 파일을 먼저 스프링으로 전환해 줍니다.

1
2
3
4
5
6
7
8
9
//        AppConfig appConfig = new AppConfig();
//        MemberService memberService = appConfig.memberService();
//        MemberService memberService = new MemberServiceImpl();
        
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 
        MemberService memberService = applicationContext.getBean("memberService",MemberService.class);
        
        Member member = new Member(1L,"memberA",Grade.VIP);
        memberService.join(member);
cs

위와 같이 직접 AppConfig에서 뽑아 저장하던걸  AnnotationConfigApplicationContext를 통해 Bean에서 가져오도록 변경하였습니다.

 

OrderApp 역시 동일하게 변경해 줍니다.

1
2
3
4
5
6
7
8
9
10
//        AppConfig appConfig = new AppConfig(); //Appconfig 사용 연결 
//        MemberService memberService = appConfig.memberService(); 
//        OrderService orderService = appConfig.oderService();
        
//        MemberService memberService = new MemberServiceImpl(); // 직접 연결
//        OrderService orderService = new OrderServiceImpl();
        
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 
        MemberService memberService = applicationContext.getBean("memberService",MemberService.class);
        OrderService orderService  = applicationContext.getBean("oderService",OrderService.class);
cs

 

 

 

ApplicationContext를 스프링 컨테이너라고 합니다.

스프링 컨테이너는 @Configuration이 붙은 Appconfig를 설정 정보로 사용합니다.  요기서 @Bean이 붙은 메서드를 모두 호출 반한된 객체들을 스프링 컨테이너에 등록합니다.

스프링 빈은 @Bean이 붙은 메서드의 이름을 스프링 빈의 이름으로 사용합니다. 따로 이름을 직접 지정하고 싶다면@Bean(name = "요기적기")을 통해 이름을 지정해 줄 수 있습니다.

스프링 빈에 저장된 객체는 applicationContext.getBean을 통해 가져올 수 있습니다.

 

기존에는 개발자가 직접 모든 것을 했지만 스프링이 생기고 스프링 컨테이너에서 찾아서 사용하도록 변경되었습니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

스프링 핵심 원리 - 기본편 강의 | 김영한 - 인프런

김영한 | 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보

www.inflearn.com

 

반응형