2012-02-14 3 views
1

스프링을 기반으로하는 웹 응용 프로그램이 있습니다. bean으로도 전달 된 MyClass 클래스를 보유하는 bean이 정의되어 MyEndpointextends AbstractMarshallingPayloadEndpoint으로 정의됩니다.응용 프로그램 수명주기의 스프링 빈과 bean 매개 변수 변경

MyClass은 빈의 일부 부울 매개 변수를 true으로 설정했습니다.

응용 프로그램에서이 매개 변수를 프로그래밍 방식으로 false로 변경하면 다음 요청에서도 false으로 설정되거나 기본 빈 매개 변수 true이 포함됩니까?

답변

0

빈의 scope에 따라 다릅니다 (지정하지 않으면 기본값은 singleton입니다). 이 singleton 범위 인 경우

  1. 는 애플리케이션 컨텍스트 내에서 그 빈의 인스턴스가, 그리고 당신이 그 콩을 요청할 때마다, 당신은 단일 인스턴스 것을 얻을. 이 범위로 요청을 변경하면 변경 사항이 유지됩니다.
  2. 범위가 prototype 인 경우 응용 프로그램 컨텍스트를 물을 때마다 새 인스턴스가 (동일한 매개 변수로 작성된) 사용자에게 제공됩니다. 이 범위로 요청을 변경하면이 객체의 다른 인스턴스를 가져올 때 변경 사항이 무시됩니다.

다음은 가장 많이 사용되는 두 가지입니다 (적어도 내 시간은 봄). 다른 범위 (요청, 세션, 전역 세션)가 있지만 documentation on them that Spring provides을 읽어야합니다.

0

이 속성은 응용 프로그램의 비즈니스 논리에 따라 동적으로 변경하고,뿐만 아니라 모든 새 요청에 재설정하려는 경우 (특히 Lookup Method Injection)

공장 방법을 고려 (그렇지 않으면 마술을 할 것입니다 범위를 요청)
관련 문제