2012-07-26 3 views
0

그래서 봄 통합에 새로 온 사람, 주로뿐만 아니라 봄에, 그래서 용어의 모든에 최대되지 않을 수도 있습니다, 그러나 나는 다음과 같은 시나리오를 통해 실행 해요 :이전 기능을 유지하면서 스프링 통합을 확장 하시겠습니까?

난 작은 봄 통합이 3 개의 SI 플로우를 갖는 어플리케이션 ... 각 플로우는 고유 한 게이트웨이를 가지며, 각 게이트웨이는 자체 요청 채널 및 응답 채널을가집니다. 이러한 플로우는 (모든 집중적 인 목적을 위해 ... 기본적으로 'GO'신호/빈 메시지) 널 호출을 수신하고 (사소한) 비즈니스 로직 결과에 따라 상태 메시지로 응답합니다.

나는 하나의 요청이 주어지면 하나의 '마스터 플로우'에서 실행되도록 이들 플로우를 하나로 연결하고 싶다. 별도로 실행하는 능력을 빼앗기지 않고도 주석을 통해 완전히 연결하고 싶다. XML (기본 게이트웨이의 서비스 인터페이스를 호출하는 컨트롤러가 제공되며 주석/XML 구성 외부에 추가 코드를 작성할 필요가 없습니다.)

이 방법이 가능합니까?이를 수행하기 위해 사용해야하는 통합 구성 요소는 무엇입니까?/또는 각 게이트웨이가 엔드 - 투 - 엔드를 서로 만날 수 있도록 예상 채널을 조정해야합니다 (그렇다면이 전략을 통해 각 플로우를 사례 별로 호출 할 수있는 방법을 보완 할 수 있습니다) 사례 기준)?

또한 이것이 가능하지 않은 경우 서비스 액티베이터를 사용하여 각 하위 흐름을 호출하는 것이 적절합니까? 나는 더 많은 코딩을 피하고 싶었지만, 이것이 유일한 옵션이라면 그것이해야 할 것이라고 생각한다.

감사합니다.

답변

1

아마 가장 간단한 방법은 Spring Profile (Spring 3.1 기능)을 사용하는 것입니다. 독립 실행 형 모드로 배포 할 때, 마지막 요소는 흐름의 마지막 요소가 더 출력 채널이없는 경우

<int:bridge input-channel="app1Final" /> 

는 ... 메시지가 반환됩니다 ...는 "아무데도 다리"가 될 수 게이트웨이의 회신 채널. 브릿지가 게이트웨이의 응답 채널을 가리 키도록 명시 적으로 구성하는 것을 선호하는 경우에도 괜찮습니다. 그것은 단지 필요하지 않습니다. 은 "연결"프로필에

, 당신은 app2Inbound 그 응용 프로그램의 게이트웨이의 요청 채널과 동일하므로 다리 ...

<int:bridge input-channel="app1Final" output-channel="app2Inbound"/> 

을 ... 구성합니다.

<beans profile="default"> 
    <int:bridge input-channel="app1Final" /> 
</beans> 

<beans profile="linked"> 
    <int:bridge input-channel="app1Final" output-channel="app2Inbound"/> 
</beans> 

이 내 목적을 위해 작동합니다

+0

'링크'에 링크 된 프로파일 설정 시스템 등록 정보 'spring.profiles.active'를 실행합니다. 감사! – LJ2

관련 문제