Inflearn36 9-6. 웹 스코프 보호되어 있는 글 입니다. 2024. 7. 28. 9-5. 요청할 때마다 새로운 프로토타입 빈 반환하기 요청할 때마다 새로운 프로토타입 빈을 제공하도록 하는 방법은 다음 몇 가지가 있다. 스프링 컨테이너에 요청스프링 컨테이너를 의존해서 요청이 들어올 때마다 getBean()을 호출한다.ObjectFactory, ObjectProvider (스프링 기능)지정한 빈을 컨테이너에서 대신 조회해주는 ObjectProvider를 사용한다.이전에는 ObjectFactory가 있었고, 현재는 편의기능이 추가된 ObjectProvider를 사용한다.JSR-330 Provider (자바 표준)JSR-330 자바 표준 Provider를 사용한다.스프링 말고 다른 환경에서도 사용할 수 있다는 특징이 있다. 하나씩 살펴보자. 전체 테스트에서 사용되는 PrototypeBean 클래스@Scope("prototype")static .. 2024. 7. 28. 9-4. 프로토타입과 싱글톤 빈을 함께 사용할 때 주의할 점 프로토타입 빈은 조회 시점마다 새로 생성되기 때문에, 각 요청마다 서로 다른 빈을 사용하는 로직을 설계할 때 적합하다. 하지만 싱글톤 빈과 함께 사용할 경우 의도한대로 동작하지 않을 수 있다. 싱글톤 빈이 어떤 프로토타입 빈을 의존할 때, 생성 시점에 주입받은 프로토타입 빈은 여러번 받는게 아니기 때문이다. 싱글톤 스코프인 어떤 clientBean이 prototypeBean을 의존하는 예시를 보자. clientBean은 prototypeBean 하나를 주입받아 가지고 있는 상황이다. 여기서 여러 클라이언트가 내부적으로 prototypeBean을 사용하는 clientBean의 addCount() 메서드를 호출한다면,여러 클라이언트가 같은 prototypeBean에 접근하게 된다. clientBean이.. 2024. 7. 28. 9-3. 싱글톤 스코프 싱글톤 스코프의 특징은 다음과 같다.생명주기: 스프링 컨테이너 생성 직후 ~ 컨테이너 소멸 직전싱글톤 컨테이너에 의해 싱글톤으로 관리된다.싱글톤 컨테이너에 의해 postConstruct, preDestroy 메서드가 자동으로 실행된다. 싱글톤 스코프의 특징을 확인하는 테스트코드를 다음과 같이 작성할 수 있다.public class SingletonBeanTest { @Test void singletonBeanFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); System.out.println("call getBean()");.. 2024. 7. 27. 이전 1 2 3 4 ··· 9 다음