전체 글
-
[Spring] 스프링 핵심 원리 - 의존관계 자동 주입Study/Spring 2025. 4. 16. 22:02
다양한 의존관계 주입 방법의존관계 주입은 크게 4가지 방법 존재생성자수정자(setter)필드일반 메서드 1) 생성자 주입특징생성자 호출 시점에 딱 1번만 호출되는 것이 보장됨불변, 필수 의존관계에 사용 예시)@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired // 생성자가 1개인 경우 생략 가능 public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy..
-
[Spring] 스프링 핵심 원리 - 컴포넌트 스캔Study/Spring 2025. 4. 16. 22:00
컴포넌트 스캔과 의존관계 자동 주입 시작하기요약컴포넌트 스캔 : 스프링 컨테이너에 스프링 빈을 등록하는 것@ComponentScan 사용 : @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록함의존관계 자동 주입 : 등록된 스프링 빈 간의 의존관계를 생성하는 것, @Autowired 사용 1) 컴포넌트 스캔스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공함*설정 정보 : @Bean이나 XML의 등을 통해 설정 정보에 직접 등록할 스프링 빈을 나열하는 것컴포넌트 스캔을 사용하려면 @ComponentScan을 설정 정보에 붙여주면 됨@Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록함스프링 빈의 기본 이름은 클래스명을 ..
-
[Spring] 스프링 핵심 원리 - 싱글톤 컨테이너Study/Spring 2025. 4. 16. 21:55
싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 함private 생성자를 사용해 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 함 예시)public class SingletonService { // 1. static 영역에 객체를 딱 1개만 생성해둠 private static final SingletonService instance = new SingletonService(); // 2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용함 public static SingletonService getInstance() { return instance; } // 3..
-
[Spring] 스프링 핵심 원리 - 스프링 컨테이너와 스프링 빈Study/Spring 2025. 4. 16. 21:49
스프링 컨테이너 생성ApplicationContext 를 스프링 컨테이너라고 함 (인터페이스임)스프링 컨테이너는 XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스를 만들 수 있음참고)더 정확히는 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext 로 구분해서 이야기함BeanFactory 를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext 를 스프링 컨테이너라고 함 스프링 컨테이너의 생성 과정스프링 컨테이너 생성스프링 컨테이너를 생성할 때는 구성 정보를 지정해줘야 함스프링 빈 등록빈 이름은 메서드명을 사용함빈 이름을 직접 부여할 수도 있음 (빈 이름은 항상 다른 이름을 부여해야 함)스프링 빈 의존관계 설정 - 준비스프링 빈..