263.27. 사용자 정의 함수 사용


Camel 2.14.1로 사용 가능

속성 구성 요소를 사용하면 속성 자리 표시자의 구문 분석 중에 사용할 수 있는 타사 함수를 사용할 수 있습니다.The Properties component allow to plugin 3rd party functions that can be used during parsing of the property placeholders. 그런 다음 이러한 함수는 사용자 지정 논리를 수행하여 데이터베이스 검색, 사용자 지정 계산 또는 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>
참고

come l 2.19.0 에서 위치 특성( propertyPlaceholder 태그에 있음)이 더 이상 필요하지 않습니다.

여기서는 사용자 지정 함수를 사용하도록 < propertyPlaceholder >를 정의해 빈 ID라고 하는 Camel XML 경로 - 즉 beerFunction 과 같은 Camel XML 경로가 있습니다. 맥주 함수는 이름으로 "beer" 를 사용하므로 자리 표시자 구문은 beer:value 로 시작하여er 함수를 트리거할 수 있습니다.

함수 구현은 다음과 같이 두 가지 방법 중 하나일 뿐입니다.

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 메서드는 함수 이름, eg 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은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동