2012-06-18 2 views
0

누군가가 스프링 xml 구성 파일에서 빈에 대한 초기화 순서를 설명 할 수 있습니까? 특정 상황에서 주문에 따라 달라지는 것으로 보이지만이를 나타내는 어떠한 문서도 찾을 수 없었습니다. 단일 구성 파일을 사용할 때 bean 순서는 독립적 인 것처럼 보입니다. 그러나 상위 구성에서 bean을 겹쳐 쓰면 순서가 중요 할 수 있습니다. 정확히 어떤 상황에서이 오류가 발생하는지 확인하기 위해 추가 테스트를 수행해야합니다. Spring 3.0.5를 사용하고 있으며 설정 파일을 사용하여 생산 코드의 bean을 조롱 된 구현으로 재정의했습니다. 빈들은 서비스에 자동 실행되며 조롱 된 객체는 재정의가 필요한 이유입니다. 이것에 대한 어떤 통찰력이라면 크게 감사 할 것입니다.스프링 XML 초기화 순서

답변

0

주문 때로는 중요하다, 나는이 상황을 생각할 수 있습니다 : 동일한 이름으로 나중에 정의

  1. 콩 이전에 정의 된 콩을 무시 - 그래서 당신은 콩의 일부 모의 객체가있는 경우, 그냥 정의를 핵심 응용 프로그램 빈을로드 한 후
  2. BeanFactoryPostProcessors 및 BeanPostProcessors는 정의 위치를 ​​기반으로 처리되거나 order 속성 (있는 경우)을 기반으로 처리됩니다.
  3. AOP 조언은 order 속성을 기반으로 실행됩니다.

귀하의 상태가 1 단계에서 다루어지고있는 것처럼 보이지만, 다른 사람들을 추가 할 수있는 확실한 방법이 있습니다.

+0

하위 컨텍스트의 조롱 된 bean은 상위 컨텍스트에서 동일한 이름을 가진 bean을 대체합니다. 자식 컨텍스트는 부모를 가져옵니다. 이것은 부모 컨텍스트가 초기화 된 다음 자식 컨텍스트를 의미한다고 가정했지만 이것이 사실 인 것처럼 보입니다. 오버라이드되기 전에 하나의 컨텍스트 파일이 완전히로드되도록하는 방법을 명확히 할 수 있습니까? –

+0

자식 컨텍스트에 bean1 -' "이있는'parent-context.xml' 파일이 있다면 이것을해야한다고 말하십시오 :' 대신에 '을 수행하면 자식 빈이 정의 된 후에 부모 컨텍스트가 반입되므로 상위 빈이 적용됩니다. –