Home 회원,주문,할인 설계와 개발 예제 (2) - 스프링 전환
Post
Cancel

회원,주문,할인 설계와 개발 예제 (2) - 스프링 전환

이전 포스트에서 순수한 자바 코드만으로 DI를 적용했다. 이제 스프링을 사용해보자.

스프링으로 전환하기

1
2
3
4
5
//AppConfig

클래스 위에 @Configuraion 추가.

각 메서드에 @Bean 추가.
  • @Configuration - 구성정보 / 설정정보에 붙이면 됨.
  • @Bean - 스프링 컨테이너에 메서드를 등록
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//MemberApp

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);  
  
		Member member = new Member(1l, "memberA", Grade.VIP);  
		memberService.join(member);  
  
		Member findMember = memberService.findMember(1L);  
		System.out.println("new member = " + member.getName());  
		System.out.println("find Member = " + findMember.getName());  
	}  
}
  • ApplicationContext 를 스프링 컨테이너라 한다.
  • 기존 코드는 개발자가 AppConfig를 사용해서 직접 객체를 생성하고 DI 했지만, 이제부터는 스프링 컨테이너를 통해 사용한다.
  • 스프링 컨테이너는 @Configuration이 붙은 클래스를 구성 정보로 사용한다. @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다.
  • 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다.
  • applicationContext.getBean() 메서드를 사용해 필요한 스프링 빈을 찾을 수 있다.

** 코드가 더 복잡해진 것 같은데, 스프링 컨테이너 사용의 장점은 뭘까?

스프링 빈 / DI 포스트 @Controller, @Configuration / @Autowired, @Bean

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