Study/Spring
-
[Spring] 스프링 핵심 원리 - 빈 스코프Study/Spring 2025. 4. 17. 01:14
빈 스코프란?스코프는 ‘빈이 존재할 수 있는 범위’를 뜻함스프링은 다음과 같은 다양한 스코프를 지원함싱글톤 : 기본 스코프스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입스프링 컨테이너는 프로토타입 빈의 생성, 의존관계 주입, 초기화 콜백까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프웹 관련 스코프request : 웹 요청이 들어오고 나갈 때까지 유지되는 스코프session : 웹 세션이 생성되고 종료될 때까지 유지되는 스코프application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입 스코프프로토타입 스코프의 빈을 스프링 컨테이너에서 조회하면 항상 새로운 인스턴스를 생성해서 반환함특징핵심은 스프링 컨테이너는 프로토타입 빈을 생성하고, 의존..
-
[Spring] 스프링 핵심 원리 - 빈 생명주기 콜백Study/Spring 2025. 4. 16. 22:04
빈 생명주기 콜백 시작DB 커넥션 풀이나, 네트워크 소켓처럼 어플리케이션 시작 시점에 필요한 연결을 미리 해두고, 어플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요함객체 초기화스프링 빈은 객체를 생성하고, 의존관계 주입이 끝난 후 필요한 데이터를 사용할 수 있는 준비가 완료됨따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 함스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공함객체 종료스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 제공함 참고) 객체의 생성과 초기화를 분리하자!생성자는 필수 정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가짐반면 ..
-
[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 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록함스프링 빈의 기본 이름은 클래스명을 ..