[Spring] 전략 패턴 구현, 스프링 빈 모두 불러오기 활용

2025. 5. 21. 05:53·JAVA
static class DiscountService {
	private final Map<String, DiscountPolicy> policyMap;
    private final List<DiscountPolicy> policies;
    
    public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies){
    	this.policyMap = policyMap;
        this.policies = policies;
    }
    
    public int discount(Member member, int price, String discountCode) {
    	DiscountPolicy discountPolicy = policyMap.get(discountCode);
        return discountPolicy.discount(member, price);
 }

 

스프링에 의해 자동의존 관계 주입 된다. @Autowired 생성자 하나밖에 없으면 안 붙여도 됨

DiscountPolicy를 빈으로 두 개 이상 등록해놨다면 policyMap에 두 개 이상 담기게 될 것이다.

 

void findAllBean(){
	ApplicationCOntext ac = new AnnotationConfigApplicationContext(AppConfig.class, DiscountService.class);
    
    DiscountService ds = ac.getBean(DiscountService.class);
    Member member = new Member(1L,"userA",Grade.VVIP);
    int discountPrice = discountService.discount(member,가격,할인정책);
    
}

할인 정책에 입력한 값에 따른 알맞은 할인 가격이 나오게 될 것이다.

'JAVA' 카테고리의 다른 글

[Spring] Request 스코프 활용해 HTTP 요청마다 로그 남기기  (0) 2025.05.21
중첩 내부 클래스  (0) 2025.05.14
중첩클래스 활용  (0) 2025.05.07
날짜와 시간  (0) 2025.05.07
SOLID 원칙  (0) 2025.04.15
'JAVA' 카테고리의 다른 글
  • [Spring] Request 스코프 활용해 HTTP 요청마다 로그 남기기
  • 중첩 내부 클래스
  • 중첩클래스 활용
  • 날짜와 시간
Ark B
Ark B
  • Ark B
    기록
    Ark B
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • 개인 프로젝트 정리 (1)
      • JAVA (9)
      • CS (7)
      • 프로젝트 정리 (6)
        • 인턴 (5)
        • 졸업프로젝트 (0)
      • 코딩테스트 (1)
      • 클린 코드 (3)
      • 책 정리 (1)
        • Effective Java (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Ark B
[Spring] 전략 패턴 구현, 스프링 빈 모두 불러오기 활용
상단으로

티스토리툴바