Spring 공부
스프링 기본편 정리2
키스샷1104
2023. 11. 1. 22:17
이번에는 수동으로 빈에 등록해서 써보겠다.
@Configuration
public class BeanConfig {
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
@Bean
public DiscountPolicy discountPolicy() {
return new FixDiscountPolicy();
}
@Bean
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public OrderService orderService() {
return new OrderServiceImpl(memberService(), discountPolicy());
}
}
public class MemberApp {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(BeanConfig.class);
MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class);
DiscountPolicy discountPolicy = ac.getBean(DiscountPolicy.class);
MemberService memberService = ac.getBean(MemberServiceImpl.class);
OrderService orderService = ac.getBean("orderService", OrderService.class);
Member vipMember = new Member(1L, "memberA", Grade.VIP);
memberService.join(vipMember);
Member findMember = memberService.findMember(1L);
System.out.println("new member = " + vipMember.getName());
System.out.println("find Member = " + findMember.getName());
Member basicMember = new Member(2L, "memberB", Grade.BASIC);
memberService.join(basicMember);
findMember = memberService.findMember(2L);
System.out.println("new member = " + basicMember.getName());
System.out.println("find Member = " + findMember.getName());
Menu ramen = new ShinRamen();
ramen = new Egg(ramen);
ramen = new Egg(ramen);
System.out.println("Items : " + ramen.getItemName());
System.out.println("Cost : " + ramen.getCost());
findMember = memberService.findMember(1L);
Order vipOrder1 = orderService.createOrder(findMember.getId(), ramen.getItemName(), ramen.getCost());
System.out.println("order = " + vipOrder1);
findMember = memberService.findMember(2L);
Order basicOrder2 = orderService.createOrder(findMember.getId(), ramen.getItemName(), ramen.getCost());
System.out.println("order = " + basicOrder2);
}
}
BeanConfig클래스를 하나 만들고
main부분만 조금 수정해주면 된다.
다음은 Autowired를 사용해 볼것이다.