95.5. 생산자에서 표현식 매개변수 사용
Camel 2.16.1 이상에서 Simple 표현식을 사용하면 메시지 본문에서 OGNL와 같이 getLicense 및 getMinimum 방법이 있다고 가정합니다.
@NAME(projects)
SELECT *
FROM projects
WHERE license = :${body.license} AND id > :${body.minimum}
ORDER BY id
95.5.1. 소비자에서 표현식 매개변수 사용 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.23에서 사용 가능
ElSql 구성 요소를 소비자로 사용할 때 이제 expression 매개변수(simple language)를 사용하여 jenkins에서 메서드를 호출하여 ID, 날짜 또는 기타 항목을 검색하는 등의 동적 쿼리 매개변수를 빌드할 수 있습니다.
예를 들어 아래 샘플에서 DestinationRule myIdGenerator에서 nextId 메서드를 호출합니다.
@NAME(projectsByIdBean)
SELECT *
FROM projects
WHERE id = :${bean#myIdGenerator.nextId}
위의Bean 구문에서 간단한 표현식에서 : 대신 # 을 사용해야 합니다. 이는 Spring 쿼리 매개변수 구문 분석기가 사용 중이므로 콜론에서 매개변수를 구분합니다. 또한 Spring 쿼리 구문 분석기가 각 쿼리에 대해Bean을 두 번 호출한다는 점에 유의하십시오.
또한 Maven에는 다음 방법이 있습니다.
public static class MyIdGenerator {
private int id = 1;
public int nextId() {
// spring will call this twice, one for initializing query and 2nd for actual value
id++;
return id / 2;
}
메시지 본문 및 헤더가 있는 기존 Exchange 가 없으므로 소비자에서 사용할 수 있는 간단한 표현식은 이 예제와 같이 DestinationRule 메서드를 호출하는 데 가장 유용합니다.