스프링 강의 필기/스프링 핵심 원리 - 기본편

스프링 강의 필기/스프링 핵심 원리 - 기본편

강의 수강 후 전반적인 정리 - 1편

출처:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 강의를 수강한 후, 전반적인 흐름 및 나중에 복기할 수 있게 정리해보려한다..(과외 학생 설명하듯이 진행해보겠다) "승수씨.. 정말 미안한데 부탁이 있어요. 우리가 급히 기능을 만들어야해요. 회원 / 주문&할인정책 을 급하게 만들어야하는데....

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 7 - (2). 의존관계 자동 주입

* 조회한 빈이 모두 필요할 때, List, Map 의도적으로 해당 타입의 스프링 빈이 모두 필요할 때가 있다. ex. 할인 서비스를 제공하는데, 클라이언트가 할인 종류(rate, fix)를 선택할 수 있다 가정. public class AllBeanTest { @Test void findAllBean() { ApplicationContext ac = newAnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VI..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 7 -(1) 의존관계 자동 주입

의존관계 주입에는 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 통해서 의존 관계를 주입하는 방법이다. 생성자 호출 시점에서 딱 한번만 호출된다. 불변, 필수 의존관계에 사용된다는데 어떤 의미인지 설명을 들으며 이해해보자. @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, Disc..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 6. 컴포넌트 스캔

지금까지 @Bean을 붙여서 스프링 빈을 넣어주었다. 하지만 실무에서 이 Bean을 붙여줘야할 것들이 수십, 수백개가 된다면? for문돌려서 할 수 있는 것도 아니잖아.. 그렇기에 스프링에서는 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 Component Scan 기능을 제공한다. @Configuration @ComponentScan public class AutoAppConfig{ } Component Scan을 사용하려면 @ComponentScan을 붙여주면 된다. ComponentScan은 @Component이 붙은 클래스를 스캔해서 스프링 빈으로 넣어주는 기능을 한다. (@Configuration 소스코드를 열어보면 @Component이 붙어있다. 즉, Configuration도 Compon..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 5 - 싱글톤 컨테이너

보통 웹 애플리케이션은 여러 고객이 동시에 요청을 한다. public class SingletonTest{ @Test void pureContainer(){ AppConfig appConfig = new AppConfig(); // 1 조회 MemberService memberService1 = appConfig.memberService(); //2 조회 MemberService memberService2 = appConfig.memberService(); // memberService1 != memberService2 assertThat(memberService1).isNotSameAs(memberService2); } } 스프링 아닌 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 새로운..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션4 - 스프링 컨테이너와 스프링 빈

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이다. 컨테이너에 있는 모든 빈을 조회해보자. class ApplicationContextInfoTest{ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력") void findAllBean(){ String[] beanDefinitionNames = ac.g..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용

기존의 섹션 2에서 우리는 순수하게 자바 코드로만 할인 정책을 만들어보았다. 고정 금액할인 정책, 즉 fixedPrice로 만들었는데 우리는 이미 이 전부터 이러한 정책이 변경될 것을 어느정도 알고 있었기에 인터페이스로 분리를 해주었다. 인터페이스로 해놓고 만약 정책이 바뀌면 해당 정책을 인터페이스에 구현 객체로 넘겨주면 되니까. 그러면 이걸 애플리케이션에 적용해보자. public class OrderServiceImpl implements OrderService{ // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final Discount policy = discountPolicy = new RateDisc..

void_melody
'스프링 강의 필기/스프링 핵심 원리 - 기본편' 카테고리의 글 목록