2011-05-05 4 views
3

spring을 사용하는 경우 요청 범위 bean은이 정의가 맞습니까?Spring 요청 범위 bean을 정의

<bean id="shoppingCart" class="ShoppingCart" scope="request"> 
<!-- This requires CGLIB --> 
<aop:scoped-proxy/> 
</bean> 

가 나는 세션 범위 콩 예에서이 수정, 나는이 링크에서이 예제를했다 프록시 일

확실뿐만 아니라 범위 정의, 변경, 당신은 전체 XML을 볼 수 있습니다 :

http://wheelersoftware.com/articles/spring-session-scoped-beans-2.html

+0

왜 프록시가 필요합니까? – Bozho

+0

나는 – Spring

답변

5

일반적으로 - 네, 맞습니다.

모든 요청에 ​​대해 요청 범위 Bean을 BeanFactory에서 직접 가져 오는 경우 프록시가 필요하지 않습니다.

@Controller 
public class MyController { 

    @Autowired 
    private ShoppingCart shoppingCart; 
} 

이 범위 콩에 대한 자세한 내용은이 reference 페이지를 참조하십시오 :이 같은 예를 들어, 범위 빈을 싱글 톤하는 depenedncy로 요청 soped 빈을 사용하려고하는 경우

은 그러나 당신은 프록시가 필요합니다 .

가능한 한 CGLIB 대신 표준 JDK 인터페이스 기반 poxies를 사용하는 것이 좋습니다. 스프링 프록시와 관련된 자세한 내용은 documentation에서 확인할 수 있습니다.

+0

링크를 게시 했으므로 stateles 웹 서비스에서 고객 정보 변수를 보유하고 클래스 요청을 처리하기 위해 빈 팩토리를 사용하는 것이 좋다. 내 이전 구조에 의존하여 사용할 것인가 아니면 봄에 원할 때마다 빈 공장을 만들고 사용할 수 있습니까? 내 마지막 XML 정의는 다음과 같습니다. – Spring

+1

Spring에서 BeanFactory를 생성하지 않는다. ApplicationContext **가 ** BeanFactory이기 때문에, 프레임 워크가 Spring에서 BeanFactory를 생성하지 않는다. Roadrunner

관련 문제