본문 바로가기

SpringBoot

10월4일 Spring Boot OrderApp구현

사전지식 역시나 Spring 에서 bean을 가져와서 써야하기 때문에 

AppConfig appConfig = new AppConfig();

MemberService memberService = appConfig.memberService();

OrderService orderService = appConfig.orderService();

의 방법으로 bean을 가져오는데

이 방법은 

AppConfig 라는 class에서 

@Configuraton 이라는 어노테이션이 선언되어있고

그 하위로 

@Bean

public MemberService memberService(){

return new MemberServiceImpl(memberRepository());

}

위와 같이 @Bean어노테이션을 붙여 bean객체로 등록할 객체를 반환하는 메소드를 작성해는 방식으로 Spring에 bean을 등록했는데

AppConfig의 상위개체인 ApplicationContext 를 사용하여 조금 다른 방식으로 bean을 등록한다.

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

위의 방법으로 bean을 등록하게 되는데 @Bean 이 명시되어있는 클래스를 매개변수로 넣어주는것으로 구현한다.

이때 ApplicationContext 가 Spring 자체 인것이다.

이렇게 bean등록을 마치고 SpringContainer에서 bean을 꺼내온다.

MemberService memberService = applicationContext.getBean("memberService" , MemberService.class);

OrderService orderService = applicationContext.getBean("orderService" , ORderService.class);

 

이후 

Long memberId = 1L;

Member member = new Member(memberId , "memberA" , Grade.VIP);

memberService.join(member);

우선 Member를 하나 생성하고 값을 저장하는 레포지토리(memberService)에 저장한다.

 

Order order = orderService.createOrder(memberId,"itemA" , 10000);

그후 주문객체를 하나 생성하여 객체에 생성자 방법으로 필드값을 충족시켜준다.

 

그후 order가 가지고 있는 calcucatePrice 라는 메소드를 사용해서 할인된 금액 값을 가져온다.