Spring/스프링 핵심 원리 - 기본편

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 04. 스프링 컨테이너와 스프링 빈 - 스프링 빈 조회(상속 관계)

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 5. 스프링 빈 조회(상속 관계) 부모 타입도 조회하면 자식 타입도 함께 조회된다! 모든 자바 객체의 최상위 클래스인 Object 타입으로 조회하면 모든 스프링 빈을 조회한다. 1. ApplicationContextExtendsFindTest 예제 코드 package hello.core.beanfind; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import org.junit.jupiter.api.DisplayName; import ..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 04. 스프링 컨테이너와 스프링 빈 - 스프링 빈 조회(동일한 타입이 둘 이상)

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 4. 스프링 빈 조회(동일한 타입이 둘 이상) ac.get(타입)으로 조회할 때, 같은 타입의 스프링 빈이 둘 이상이면 NoUniqueBeanDefinitionException 예외가 발생한다. 이럴 경우, 1) ac.get(빈 이름, 타입) 으로 1개의 빈을 조회한다. 2) ac.getBeansOfType() 으로 해당 타입의 모든 빈을 조회한다. 1. ApplicationContextSameBeanFindTest 예제 코드 package hello.core.beanfind; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberReposi..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 04. 스프링 컨테이너와 스프링 빈 - 스프링 빈 조회(기본)

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 3. 스프링 빈 조회(기본) 1) ac.getBean(빈 이름, 타입): 빈 이름&타입으로 빈 조회 2) ac.getBean(타입): 타입으로만 빈 조회 조회 대상 스프링 빈이 없으면 NoSuchBeanDefinitionException 예외 발생! 1. ApplicationContextBasicFindTest 예제 코드 package hello.core.beanfind; import hello.core.AppConfig; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import org.junit.jupiter.api.Disp..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 04. 스프링 컨테이너와 스프링 빈 - 스프링 컨테이너 생성 & 컨테이너에 등록된 모든 빈 조회

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 스프링 컨테이너 생성 ● ApplicationContext = 스프링 컨테이너 1) XML 기반으로 생성 2) 애노테이션 기반의 자바 설정 클래스로 생성 - AppConfig를 사용한 방식 -> 주로 사용하는 방식 // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicaionContext = 인터페이스 AnnotationConfigApplicaionContext 클래스 = ApplicationContext 인터페이스의 구현체 (참고) 스프링 컨테이너는 1) BeanFac..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 03.스프링 핵심 원리 이해2(객체 지향 원리 적용) - Ioc, DI, 그리고 컨테이너 & 스프링으로 전환하기

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 8. Ioc, DI, 그리고 컨테이너 1. 제어의 역전: Ioc(Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)라 한다. 1) 기존 프로그램 기존 프로그램은 구현 객체가 프로그램 제어 흐름을 스스로 제어했다. - 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행 했다. 2) AppConfig 등장 AppConfig의 등장 후, 구현 객체는 자신의 로직을 실행하는 역할만 담당하고 프로그램의 제어 흐름은 AppConfig가 가져간다. - OrderServiceImpl은 필요한 인터페이스를 호출하지만 어떤 구현 객체들이 실행될..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 03.스프링 핵심 원리 이해2(객체 지향 원리 적용) - 새로운 구조와 할인 정책 적용 & 전체 흐름 정리 & 좋은 객체 지향 설계의 5가지 원칙

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 5. 새로운 구조와 할인 정책 적용 정액 할인 정책을 정률 할인 정책으로 변경한다. FixDiscountPolicy → RateDiscountPolicy AppConfig의 등장으로 애플리케이션이 크게 사용 영역 & 객체를 생성하고 구성하는 영역으로 분리되었다! 1. 그림 - 사용, 구성의 분리 2. 그림 - 할인 정책의 변경(중요!) FixDiscountPolicy → RateDiscountPolicy 로 변경해도 구성 영역만 영향O, 사용 영역은 영향X 3. 할인 정책 변경 구성 코드 public class AppConfig { // MemberService 역할(생성자 주입) public MemberService member..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 03.스프링 핵심 원리 이해2(객체 지향 원리 적용) - 관심사의 분리 & AppConfig 리팩터링

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 3. 관심사의 분리 "애플리케이션 = 공연, 각 인테페이스 = 배역(역할), 구현 객체 = 배우" 라고 생각해보자. 그런데 실제 배역을 맞는 배우를 선택하는 것은 누가 하는가?? 이전 코드는 로미오 역할(인터페이스)를 하는 레오나르도 디카프리오 배우(구현 객체)가 줄리엣 역할(인터페이스)를 하는 올리비아 핫세 배우(구현 객체)를 직접 초빙하는 것과 같다. 디카프리오는 공연도 해야하고 동시에 여자 주인공도 직접 초빙해야하는 다양한 책임을 갖고 있다. 1. 관심사를 분리하자 - 배우는 본인의 역할인 배역을 수행하는 것에만 집중해야 한다. - 디카프리오는 어떤 여자 주인공이 선택되더라도 똑같이 공연을 할 수 있어야 한다. - 공연을 구..

Spring/스프링 핵심 원리 - 기본편

[스프링 핵심 원리] 03.스프링 핵심 원리 이해2(객체 지향 원리 적용) - 새로운 할인 정책 개발, 새로운 할인 정책 적용과 문제점

(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 새로운 할인 정책 개발 1. 새로운 할인 정책을 확장해보자 2. RateDiscountPolicy 추가 주문한 금액의 %를 할인해주는 새로운 정률 할인 정책을 추가하자. static import 3. RateDiscountPolicy 코드 추가 DiscountPolicy 를 구현한 정률 할인 정책 클래스를 만든다. package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ private int discountPer..

HSY_mumu
'Spring/스프링 핵심 원리 - 기본편' 카테고리의 글 목록 (4 Page)