내 질문에 조금 복잡합니다 :) 내 설치 ... 계층 응용 프로그램 컨텍스트 및 표준-범위 및 맞춤 스코프
- 내가 웹 응용 프로그램을 설명하려고합니다, 하나의 웹 스프링이입니다 세션 범위 콩, 때로는 aop-proxies 등 정상적인 물건과 컨텍스트 :)
- 애플 리케이션 내에서 일부 하위 컨텍스트를 "시작"할 수있는 몇 가지 인프라를 만들려면,이 수동으로 별도로 정의 할 spring-configuration-classes,이 클래스들은 최상위/주 스프링 컨텍스트 - 빈 스캔에서 제외됩니다.이 하위 컨텍스트는 앱에 정의되지 않았습니다.
- 하위 컨텍스트가있는 기능은 선택 사항이므로 기본 컨텍스트 내에서
- 의 주 컨텍스트로만 애플리케이션을 실행할 수 있으며 하위 컨텍스트는 일부 클래스/인터페이스를 사용하여 "최상위"를 분리합니다. "sub-component-level"beans 두 개의 추가 한정자 주석을 만들었습니다 ...이 주석을 사용하여 autowiring 물건을 포주로 바른 콩이 올바른 장소에서 사용되는 것 같아요 :)
- imagine 거기에 FooBarService가 있고 각 하위 컨텍스트에서 N 개의 FooBarService가있는 경우 각 서비스는 "자체"상태 여야하므로 전체 애플리케이션에서 N + 1 인스턴스가 실행 중임
- 일부 하위 컨텍스트 bean은 최상위 수준의 beans 등을 사용 (삽입)합니다.
이 지금까지
을 작동하는 것 같다하지만 지금은 큰 메모리 누수 :(내가 문제를 찾은 것 같아 ... 나는 내 자신의 "세션 범위의"생성 된 하위 구성 요소에 대한
조사 구현 (해시지도, 실제 정리 등 없음 urgs) 그리고이 "내"(수동으로 시작한) 하위 컨텍스트에 대해 "세션"으로 "CustomScopeConfigurer"를 통해 범위를 등록했습니다 ...이 " 내 하위 컨텍스트 스프링 구성 클래스의 @ normal (@ value = WebApplicationContext.SCOPE_SESSION) 접근 방식
Q1 :이 "수제"범위가 좋은 아이디어입니까? : D Q2 :이 "수제"범위는 "세션 범위"내에서 일종의 "변환 범위"여야하지만이 범위는 "세션"에 N 번 존재하므로 "대화 1 -scope ","conversation-2-scope "..."conversation-N-scope " Q3 : 언제"대화 범위 "를 정리할 수 있습니까? 이 권리는 -
- 은 내가 "하위 상황"에서 발견되지 않은 빈은 부모 컨텍스트에서 (시도) 요청 것이라고 계층 스프링 컨텍스트에서 예상?
Q4 : 여기
final ConfigurableListableBeanFactory parentBeanFactory = ((AbstractApplicationContext) parentSpringContext).getBeanFactory();
final ConfigurableListableBeanFactory beanFactory = springApplicationContext.getBeanFactory();
final String[] scopeNames = parentBeanFactory.getRegisteredScopeNames();
for (final String scopeName : scopeNames) {
final Scope scope = parentBeanFactory.getRegisteredScope(scopeName);
beanFactory.registerScope(scopeName, scope);
}
내 "구조"의 시각화 :이 같은 "서브 컨텍스트"에서 "부모 컨텍스트"에서 알려진 모든 범위를 등록 할 필요가있다 :
TOP-LEVEL-Context |-* session-scoped beans |-* singleton beans (HelloWorldService) | |->SUB1-Context | |-* session-scoped beans (FooBarService - depends on HelloWorldService) | |-* singleton beans | |->SUB2-Context | |-* session-scoped beans (FooBarService - depends on HelloWorldService) | |-* singleton beans | |->...
모든 힌트는 멋진 :)
종류가 안드레아스
간주 될 것
Hahha ... 안녕하세요 토마스 ... 아직 다른 DI 프레임 워크는 제발;) 종류는 라이프 치히에서 안부를 전합니다 :) –