263.27. 사용자 정의 함수 사용


Camel 2.14.1로 사용 가능

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

<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>
Copy to Clipboard Toggle word wrap
참고

camel 2.19.0 에서 위치 속성( propertyPlaceholder 태그에 있음)은 더 이상 필수 사항이 아닙니다.

여기에는 사용자 지정 함수를 사용하기 위해 < propertyPlaceholder >를 정의하는 Camel XML 경로가 있습니다. 이 경로는 ingress id로 참조됩니다(예: beerFunction ). 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();
    }
}
Copy to Clipboard Toggle word wrap

함수는 org.apache.camel.component.properties.PropertiesFunction 인터페이스를 구현해야 합니다. 메서드 getName 은 함수의 이름, 즉 eg beer입니다. apply 방법은 사용자 지정 논리를 구현할 위치입니다. 샘플 코드는 단위 테스트에서 있으므로 mock 끝점을 참조하는 값을 반환합니다.

Java 코드에서 사용자 정의 함수를 등록하는 방법은 다음과 같습니다.

PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
pc.addFunction(new MyBeerFunction());
Copy to Clipboard Toggle word wrap

 

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat