Home 기본 예제에 스프링 기술 적용하기
Post
Cancel

기본 예제에 스프링 기술 적용하기

이 게시글은 인프런의 유료 강의 스프링 핵심 원리 - 기본편을 수강하며 공부한 내용을 담고있습니다.
저작권에 의해 강의내용에 해당하는 전체 코드는 공개할 수 없습니다.
저작권에 의해 모든 내용을 담을 수 없습니다. 중복 및 반복되는 내용은 생략했습니다.

스프링 전환하기

Spring 스타터를 이용해 프로젝트를 생성하기는 했지만 스프링 프레임워크의 기능을 일절 사용하지 않고 Java 코드만을 사용해 예제를 구성하고 DI 를 적용했다.
스프링 프레임워크의 기능을 사용해 DI를 적용해보도록 한다.

사진1
DI 를 해주는 AppConfig 클래스로 가서 사진과 같이 어노테이션을 붙인다.
@Configuration 을 붙이면 위에 보이는 클래스가 import 되야한다. @Bean 어노테이션은 DI를 해주는 메서드마다 붙여주면 된다.
이렇게 하면 스프링이 실행될때 알아서 스프링 컨테이너(여기서는 AppConfig)를 만들고 스프링 빈(객체)들을 생성해놓는다.
만들어진 객체들을 가져와 사용해보자.

사진2
코드만 보면 AppConfig 객체를 생성해서 가져오는거랑 거의 다를 바 없어보이고 오히려 복잡해보이기까지한다.
왜냐하면 AppConfig 에서 의존관계를 주입받는 방법을 그대로 Spring 프레임워크를 사용해 1:1 대응하도록 코드를 수정했기 때문이다. 여기서는 Spring 컨테이너와 Spring Bean 정도만 알고 넘어간다.

1
ApplicationConText applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

Spring 이 실행될 때 생성된 AppConfig 라는 Spring 컨테이너를 applicationContext 에 보관한다.

1
2
3
// getBean 메서드를 이용해 주입받는다. 첫번째 매개변수는 가져올 Bean의 이름인데, 이름을 따로 지정하지 않으면 메서드명이 이름으로 지정된다.
memberService = applicationContext.getBean("memberService", MemberService.class);
orderService = applicationContext.getBean("orderService", OrderService.class);

AppConfig 라는 Spring 컨테이너에서 getBean 을 사용해 컨테이너에 보관된 Bean을 가져온다.
가져올 Bean 의 이름을 매개변수로 주면 되는데 @Bean 어노테이션을 붙일 때 이름을 설정하지 않았으므로 메서드명이 Bean 이름이된다.



이전 포스팅 : 객체지향 5원칙 SOLID
다음 포스팅 : 스프링 컨테이너와 빈

This post is licensed under CC BY 4.0 by the author.

객체지향 5원칙 SOLID

스프링 컨테이너와 스프링 빈