264.27. 사용자 정의 함수 사용


Camel 2.14.1로 사용 가능

속성 구성 요소를 사용하면 속성 자리 표시자의 구문 분석 중에 사용할 수 있는 타사 함수를 플러그인할 수 있습니다. 그런 다음 이러한 함수는 사용자 지정 논리를 수행하여 데이터베이스 검색, 사용자 지정 계산 또는 whatnot와 같은 자리 표시자를 해결할 수 있습니다. 함수의 이름은 자리 표시자에 사용된 접두사가 됩니다. 이는 아래 예제 코드에서 가장 잘 설명되어 있습니다.

<bean id="beerFunction" class="MyBeerFunction"/>

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
  <propertyPlaceholder id="properties">
    <propertiesFunction ref="beerFunction"/>
  </propertyPlaceholder>

  <route>
    <from uri="direct:start"/>
    <to uri="{`{beer:FOO}`}"/>
    <to uri="{`{beer:BAR}`}"/>
  </route>
</camelContext>
참고

camel 2.19.0 에서 location 속성 ( propertyPlaceholder tag의 경우)은 더 의무적이지 않습니다.

여기에서는 < propertyPlaceholder >를 정의한 Camel XML 경로가 있습니다. 이 경로는 sum id(예: beer functions )를 참조하는 사용자 지정 함수 를 사용합니다. beer 함수는 "beer" 를 이름으로 사용하므로 자리 표시자 구문은 beer:value 로 시작하여 beer 함수를 트리거할 수 있습니다.

함수의 구현은 다음과 같이 두 가지 메서드일 뿐입니다.

public static final class MyBeerFunction implements PropertiesFunction {

    @Override
    public String getName() {
        return "beer";
    }

    @Override
    public String apply(String remainder) {
        return "mock:" + remainder.toLowerCase();
    }
}

이 함수는 org.apache.camel.component.properties.PropertiesFunction 인터페이스를 구현해야 합니다. getName 메서드는 함수의 이름입니다(예: beer). apply 메서드는 사용자 지정 논리를 구현하는 위치입니다. 단위 테스트에서 샘플 코드는 mock 엔드포인트를 참조하는 값을 반환합니다.

Java 코드에서 사용자 지정 기능을 등록하려면 다음과 같습니다.

PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
pc.addFunction(new MyBeerFunction());
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.