spring core - apply spring(spring container)
This commit is contained in:
@@ -2,28 +2,38 @@ package com.example.basic;
|
||||
|
||||
import com.example.basic.discount.DiscountPolicy;
|
||||
import com.example.basic.discount.FixDiscountPolicy;
|
||||
import com.example.basic.discount.RateDiscountPolicy;
|
||||
import com.example.basic.member.MemberRepository;
|
||||
import com.example.basic.member.MemberService;
|
||||
import com.example.basic.member.MemberServiceImpl;
|
||||
import com.example.basic.member.MemoryMemberRepository;
|
||||
import com.example.basic.order.OrderService;
|
||||
import com.example.basic.order.OrderServiceImpl;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class AppConfig {
|
||||
|
||||
@Bean
|
||||
public MemberService memberService() {
|
||||
return new MemberServiceImpl(memberRepository());
|
||||
}
|
||||
|
||||
private MemberRepository memberRepository() {
|
||||
@Bean
|
||||
public MemberRepository memberRepository() {
|
||||
return new MemoryMemberRepository();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public OrderService orderService() {
|
||||
return new OrderServiceImpl(memberRepository(), discountPolicy());
|
||||
}
|
||||
|
||||
private DiscountPolicy discountPolicy() {
|
||||
return new FixDiscountPolicy();
|
||||
@Bean
|
||||
public DiscountPolicy discountPolicy() {
|
||||
// return new FixDiscountPolicy();
|
||||
return new RateDiscountPolicy();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,12 +3,18 @@ package com.example.basic;
|
||||
import com.example.basic.member.Grade;
|
||||
import com.example.basic.member.Member;
|
||||
import com.example.basic.member.MemberService;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
|
||||
public class MemberApp {
|
||||
|
||||
public static void main(String[] args) {
|
||||
AppConfig appConfig = new AppConfig();
|
||||
MemberService memberService = appConfig.memberService();
|
||||
// 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);
|
||||
|
||||
|
||||
@@ -5,13 +5,20 @@ import com.example.basic.member.Member;
|
||||
import com.example.basic.member.MemberService;
|
||||
import com.example.basic.order.Order;
|
||||
import com.example.basic.order.OrderService;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
|
||||
public class OrderApp {
|
||||
|
||||
public static void main(String[] args) {
|
||||
AppConfig appConfig = new AppConfig();
|
||||
MemberService memberService = appConfig.memberService();
|
||||
OrderService orderService = appConfig.orderService();
|
||||
// AppConfig appConfig = new AppConfig();
|
||||
// MemberService memberService = appConfig.memberService();
|
||||
// OrderService orderService = appConfig.orderService();
|
||||
|
||||
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
|
||||
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user