스프링

    [Spring] 다양한 의존관계 주입 방법

    [Spring] 다양한 의존관계 주입 방법

    의존관계 주입 4가지 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작함 생성자 주입 생성자를 통해서 의존관계를 주입하는 방법 생성자 호출시점에 딱 1번만 호출되는 것이 보장됨 불변, 필수 의존관계에 사용 생성자가 1개만 존재할 경우, @Autowired를 생략해도 자동 주입됨 (스프링 빈에만 해당) @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired // 생략..

    [Spring] 스프링 컨테이너와 스프링 빈

    [Spring] 스프링 컨테이너와 스프링 빈

    스프링 컨테이너 ApplicationContext를 스프링 컨테이너라 함 ApplicationContext는 인터페이스 -> 스프링 컨테이너는 XML 기반으로 만들 수 있고 어노테이션 기반의 자바 설정 클래스로 만들 수 있음 AppConfig가 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것 @Configuration 어노테이션이 붙은 클래스를 설정 정보로 사용함 이때 @Bean 어노테이션을 적용한 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록함 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용 위의 예제에서 MemberService 빈을 찾을 때 메서드 명 memberService를 통해서 찾음 메서드 명으로 빈 이름을 사용하지만 @Bean(name=..