[SPRING] Camel, Spring, OSGI : 중지 방법을 지정하는 방법이 있습니까?
SPRINGCamel, Spring, OSGI : 중지 방법을 지정하는 방법이 있습니까?
Camel Spring OSGI 응용 프로그램을 실행하고 있습니다. Camel 컨텍스트는 Spring을 통해 초기화된다. 번들이 멈 추면 메시지 청취자 등록 취소와 같은 정리 작업을 수행해야합니다. 어떻게해야합니까? 재정의 할 수있는 방법이 있습니까? 나는 OSGI 번들이 activator의 시작과 중지 방법을 제공해야한다는 것을 이해하지만 Camel / Spring / OSGI 프레임 워크가 이러한 메소드를 오버라이드한다는 것도 이해한다.
내 beanx.xml :
<beans>
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="outboundBuilder" />
</camelContext>
</beans>
내 자바 코드 :
public class MyRouteBuilder extends RouteBuilder {
public void configure() {
.....
}
}
해결법
-
==============================
1.올바른 Bilgin Ibryam의 대답을 조금 더 확장하십시오.
올바른 Bilgin Ibryam의 대답을 조금 더 확장하십시오.
Camel은 경로에 정책을 적용 할 수 있습니다. 이 정책은 런타임에 경로를 제어합니다. 이렇게하면 경로 수명 시간의 특정 이벤트에서 사용자 지정 논리를 수행 할 수 있습니다.
경로 정책 구현.
RoutePolicySupport를 확장하고 관심있는 메소드를 오버라이드하는 새로운 클래스를 선언하는 것은 간단합니다.
public class MyRoutePolicy extends RoutePolicySupport{ @Override public void onStart(Route route) { // TODO Auto-generated method stub super.onStart(route); } @Override public void onStop(Route route) { // TODO Auto-generated method stub super.onStop(route); } @Override public void onExchangeBegin(Route route, Exchange exchange) { // TODO Auto-generated method stub super.onExchangeBegin(route, exchange); } }
이제 routebuilder configure () 메소드에서 다음과 같이 경로를 사용하십시오.
RoutePolicy policy = new MyRoutePolicy(); from("timer://blah") .routeId("Test1").routePolicy(policy) .setBody().constant("A Message Like Hello World") .to("mock:meh");
방금 경로가있는 Spring XML을 사용했다면 다음을 추가하십시오 :
<bean id="policy" class="MyRoutePolicy"/> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route id="foo" routePolicyRef="MyRoutePolicy"> <from uri="timer://blah"/> <setBody><constant>A Message Like Hello World</constant></setBody> <to uri="mock:meh"/> </route> </camelContext>
-
==============================
2.Camel Route 정책을 사용하여 경로가 중단되거나 문맥에서 제거 될 때 정리 리소스에 코드를 작성할 수 있습니다.
Camel Route 정책을 사용하여 경로가 중단되거나 문맥에서 제거 될 때 정리 리소스에 코드를 작성할 수 있습니다.
from https://stackoverflow.com/questions/23809040/camel-spring-osgi-is-there-a-way-to-specify-the-stop-method by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] jpa 쿼리에서 사용자 지정 함수를 사용하는 방법? (0) | 2019.02.25 |
---|---|
[SPRING] Spring Boot / Thymeleaf / Hibernate : Java Annotation을 사용한 Sessionfactory Bean (0) | 2019.02.25 |
[SPRING] Spring 3.x - @Async 메서드는 작업 실행자에 의해 동시에 호출되지 않습니다. (0) | 2019.02.25 |
[SPRING] crudrepository findBy 메소드 튜플리스트의 서명 (0) | 2019.02.25 |
[SPRING] Spring 5 Web Reactive - WebClient를 사용하여 Flux에서 스트리밍 된 데이터를 검색하려면 어떻게해야합니까? (0) | 2019.02.25 |