2010-05-07 3 views
1

읽기이봄 싱글 라이프 사이클

빈은 싱글, 빈의 한 공유 인스턴스가 관리되고 것이라고 콩 정의와 일치하는 ID로 콩 또는 ID에 대한 모든 요청이있는 경우 하나의 특정 빈 인스턴스가 리턴됩니다.

관리 할 것인가

...

이 무엇을 의미합니까?

하나의 객체가이 객체에 대한 수정이 점에서 수정 된 인스턴스를 돌려줍니다이 콩을 얻을 수있는 모든 다른

시도됩니다보다가 있다면?

답변

0

관리되는 것은이 클래스에서 특정 라이프 사이클을 적용한다는 것을 의미합니다 (자세한 내용은 여기 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-nature 참조). 일반적으로이 용어는 인스턴스화, 인스턴스 수, 인스턴스 수명주기 등과 같은 클래스의 기술적 문제를 신경 쓸 필요가 없다는 점을 강조하기 위해 작성되었습니다. 이 모든 것이 Spring에 의해 관리됩니다.

3

수정 된 복사본이 아니라 유일한 (수정 된) 인스턴스에 대한 참조입니다. Singletons은 복사 할 수 없습니다.

"managed"가 "bean의 공유 인스턴스 하나만"을 유지하는 것 이외의 특별한 처리를 언급하지 않는다고 생각합니다.

+0

네, 그게 내가 말하는거야. 따라서 한 웹 응용 프로그램 복사본이이 개체를 변경하고 다른 웹 응용 프로그램 인스턴스가 콩을 가져 오려고하면 두 번째 웹 응용 프로그램에서 모든 수정 사항을 볼 수 있습니까 ??? – EugeneP

+0

"managed"는이 "ApplicationContext/BeanFactory에 의해 관리 됨"을 의미합니다. 따라서 Spring 밖에서 많은 Bean 인스턴스를 생성 할 수 있지만 Spring은 하나의 인스턴스 만 생성하고 getBean()을 다른 Bean으로 연결할 때마다 해당 단일 인스턴스에 대한 참조를 리턴합니다. @EugeneP "다른 웹 앱 인스턴스"는 무엇을 의미합니까? 각각의 웹 애플리케이션은 본질적으로 별도의 컨테이너이며, 특별한 설정을하지 않았다면 하나의 웹 애플리케이션에는 하나의 Spring bean factory가 있고 두 번째 webapp에는 두 번째 인스턴스가있을 것이다. –

+1

@EugeneP, 정확하게. 다중 스레드 프로그램에서 가시성 문제가 없다 - Spring이이 문제를 어떻게 처리하는지 (또는 알고 있는지) 모르겠다.하지만 당신의 싱글 톤이 스레드로부터 안전하다는 것을 보장해야한다고 생각한다. –

관련 문제