[Spring] 스프링 핵심 원리 기본편 9. 빈 스코프

    9. 빈 스코프 빈 스코프란? 스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지 스프링 빈이 싱글톤 스코프로 생성되기 때문 스프링은 다음과 같은 스코프 지원 “싱글톤”: 기본 스코프, 스크링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 “프로토타입”: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 “웹 관련 스코프” request: 웹 요청이 들어오고 나갈 때 유지되는 Q스코프 session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입 스코프 싱글톤 스코프와 달리 스프링 컨테이너에 조회하면 ..

    [Spring] 스프링 핵심 원리 기본편 - 8. 빈 생명주기 콜백

    8. 빈 생명주기 콜백 빈 생명주기 콜백 스프링은 간단하게 다음과 같은 라이프사이클을 가진다 객체 생성 → 의존관계 주입 (생성자 주입은 예외) 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 함 - 개발자는 의존관계 주입이 완료된 시점을 어떻게 알 수 있을까?? 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸 전 콜백 → 스프링 종료 초기화 콜백: 빈이 생성되고 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 ..

    [Spring] 스프링 핵심 원리 기본편 - 6. 컴포넌트 스캔

    6. 컴포넌트 스캔 컴포넌트 스캔을 사용하려면 먼저 @ComponentScan을 설정 정보에 붙여주면 된다 참고: @Configuration이 붙은 설정 정보도 자동으로 등록되기 때문에 excludeFilters를 사용해서 컴포넌트 스캔 대상에서 제외 @ComponentScan은 @Component가 붙은 모든 클래스를 스프링 빈으로 등록 스프링 빈의 기본 이름은 클래스명을 사용하되, 맨 앞글자만 소문자를 사용 MemberServiceImpl 클래스 → memberServiceImpl 빈 이름 직접 지정도 가능 → @Component(”memberServiceImpl”) @Autowired 의존관계 자동 주입 생성자에 @Autowired를 지정하면 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입..

    [Spring] 스프링 핵심 원리 기본편 - 4. 스프링 컨테이너와 빈

    4. 스프링 컨테이너와 빈 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext : 스프링 컨테이너, 인터페이스 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 한다 @Bean 이 붙은 애들을 하나씩 호출 → 메서드 이름을 빈 이름으로, 반환하는 객체를 빈 객체로 등록 빈 이름은 항상 다른 이름을 부여 스프링 빈 의존관계 설정 설정 정보(AppcConfig)를 참고해서 의존관계 주입 스프링은 빈을 생성하고 의존관계를 주입하는 단계가 나누어져 있음 → 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한꺼번에 처리 컨테이너에 등..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]