(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 8. 스코프와 프록시 이전에 사용했던 Provider 대신 프록시 방식을 사용한다. 1. 프록시 방식 1) MyLogger 프록시 적용 @Scope 속성으로 proxyMode = ScopedProxyMode.TARGET_CLASS 를 추가한다. - 적용 대상이 클래스 → TARGET_CLASS 선택 - 적용 대상이 인터페이스 → INTERFACES 선택 package hello.core.common; import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.ScopedProxyMode; import org.spr..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 7. 스코프와 Provider 첫번째 해결방안은 Provider를 사용하는 것으로 여기서는 간단히 ObjectProvider를 사용한다. 1. ObjectProvider를 사용하도록 코드 수정 생성되지 않은 myLogger 의존관계 주입으로 문제가 되었던 LogDemoController 와 LogDemoService의 코드를 ObjectProvider 를 주입받도록 코드를 수정한다. 1) LogDemoController 코드 수정 package hello.core.web; import hello.core.common.MyLogger; import lombok.RequiredArgsConstructor; import org.spri..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 5. 웹 스코프 지금까지는 싱글톤, 프로토타입 스코프를 학습했다. 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입은 생성과 의존관계 주입, 초기화까지만 진행하는 특별한 스코프다. 1. 웹 스코프의 특징 - 웹 스코프는 웹 환경에서만 동작한다. - 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 2. 웹 스코프 종류 1) request : HTTP 요청 하나가 들어오고~나갈 때까지 유지되는 스코프 - 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. 2) session : HTTP Session과 동일한 생명주기를 가지는..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 빈 스코프란? 지금까지는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 빈 스코프란 빈이 존재할 수 있는 범위를 뜻한다. 1. 스프링이 지원하는 다양한 스코프 우리는 여기서 싱글톤, 프로토타입, request 3가지 정도만 알면 된다. 1) 싱글톤 : (기본 스코프) 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 2) 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 3) 웹 관련 스코프 - reques..