카테고리 없음

2021.01.16 (토)

  • 스프링 강의 끝
  • 구현 1문제

 

 

 spring keyword

 

 

* 싱글톤빈과 프로토타입 빈을 같이 사용할때 프로토타입 빈을 계속 생성하는 방법

- DL( (Dependency Lookup) : 의존관계 조회 )을 대신해주는 기능 사용 (ObjectProvider or ObjectFactory)

  • 스프링에서 제공
  • ObjectProvider가 ObjectFactory보다 좀 더 많은 기능을 제공

- JSP-330 Provider : 'javax.inject:javax.inject:1' 라이브러리 추가해주기

  • 자바 표준임.
  • '프로토타입 빈 생성해주는 기능'만을 제공함.

* 내 의문점 1

프로토타입 빈을 언제사용함? : 매번 새로운 객체가 필요할때... -> 그게 언젠데?

 

드물게 컨테이너가 오브젝트를 만들고 초기화해줘야 하는 경우가 존재한다.

바로 DI 때문이다.

매번 새롭게 만들어지는 오브젝트가 컨테이너 내의 빈을 사용해야 하는 경우이다. 

 

참고 :  happyer님 블로그

 

1.3-IoC 컨테이너 : 프로토타입과 스코프

IoC 컨테이너 : 프로토타입과 스코프 스프링의 빈은 기본적으로 싱글톤으로 만들어진다. 요청이 있을때마다 매번 애플리케이션 로직을 담은 오브젝트를 새로 만드는 것은 비효율적이기 때문이

happyer16.tistory.com

* ObjectProvider 와 JSP-330 Provider 중에 어떤것을 사용하면 좋을까?

 

1. 만약 코드를 스프링이 아닌 다른 컨테이너에서 사용해야 한다면 : JSP-330 Provider(자바표준)를 사용해야함

2. 스프링은 이 기능(프로토타입 빈을 새로 생성하는 기능)외에도 더 다양하고 편리한 기능을 제공하기 때문에 1번의 이유가 아니라면 스프링에서 제공하는 ObjectProvider를 사용하는것이 좋다.

 

 

 

 

 

 

* 웹 스코프

  • 웹 환경에서만 동작
  • 스코프의 종료시점까지 관리함 -> 종료 메소드 호출