728x90 Spring30 인프런 스프링 기본 강의 정리 #7 1. 다양한 의존관계 주입 방법생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입1) 생성자 주입이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법으로 가장 추천되는 방식이다. 생성자 호출 시점에 1번만 호출되며 불변, 필수 객체로 유지된다. 또한 생성자가 1개인 경우 @Autowired를 생략 가능하다.@Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; }위 경우는 OderServiceImpl 생성자가 하나이므.. 2023. 11. 27. 인프런 스프링 기본 강의 정리 #6 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서설정 정보에 직접 등록할 스프링 빈을 나열했다. 이러한 과정을 생략하고자 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또한 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다. 이를 알아보고자 기존 AppConfig.java는 과거 코드와 테스트를 유지하기 위해 남겨두고, src/main/java에 새로운 AutoAppConfig 클래스를 생성한다.import org.springframework.context.annotation.ComponentScan;import org.springframework.co.. 2023. 11. 25. 인프런 스프링 기본 강의 정리 #5 1. 웹 애플리케이션과 싱클톤 대부분의 스프링 애플리케이션은 웹 애플리케이션이며, 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 이때 여러 클라이언트가 memberService를 요청할 때마다 컨테이너는 다른 memberService를 만든다. 이를 확인해보기 위해 테스트 코드를 작성해보자. -스프링 없는 순수한 DI 컨테이너 테스트 src/test에 singleton 패키지를 생성하고, 그 아래에 SingletonTest 클래스를 생성한다. import hello.core1.AppConfig; import hello.core1.member.MemberService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api... 2023. 11. 25. 인프런 스프링 기본 강의 정리 #4 1. 스프링 컨테이너 생성 //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너이자 인터페이스이다. 그리고 new AnnotationConfigApplicationContext(AppConfig.class)는 ApplicationContext의 구현체이다. 스프링 컨테이너의 생성 과정을 알아보도록 하자. 1) 스프링 컨테이너 생성 스프링 컨테이너를 생성하면 그 안에 스프링 빈 저장소가 생성된다. 이때 구성 정보(AppConfing.class)를 지정해줘야 한다. 2) 스프린 빈 등록 @Bean이 붙은 코드의 .. 2023. 11. 23. 이전 1 2 3 4 5 6 7 8 다음 728x90