사전지식 역시나 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 라는 메소드를 사용해서 할인된 금액 값을 가져온다.
'SpringBoot' 카테고리의 다른 글
10월 6일 Spring Boot DIP와 생성자 주입 (0) | 2022.10.07 |
---|---|
10월 5일 Spring Boot 다형성 설계시 중요한것. (0) | 2022.10.06 |
10월3일 Spring Boot discount의 구조 및 실행클래스 구조 (다형성) (2) | 2022.10.04 |
10월2일 Spring Boot Order 객체 (다형성) (0) | 2022.10.03 |
10월1일 Spring Boot Member 객체 (다형성) (0) | 2022.10.02 |