24.27. ANT 경로 일치자를 사용하여 필터링
ANT 경로 matcher는ECDHE PathMatcher 를 기반으로 합니다.
파일 경로는 다음 규칙과 일치합니다.
-
하나의 문자를 찾습니다.Match one character.
-
0개 이상의 문자를 찾습니다.Match zero or more characters.
-
**
경로의 0개 이상의 디렉터리 일치
antInclude
및 antExclude
옵션을 사용하면 필터를 정의하지 않고도 ANT 스타일 include/exclude를 쉽게 지정할 수 있습니다. 자세한 내용은 위의 URI 옵션을 참조하십시오.
아래 샘플은 이를 사용하는 방법을 보여줍니다.
24.27.1. Comparator를 사용한 정렬 링크 복사링크가 클립보드에 복사되었습니다!
Camel은 플러그형 정렬 전략을 지원합니다. 이 전략은 Java에서 java.util.Comparator
에서 빌드를 사용하는 것입니다. 그런 다음 이러한 비교자를 사용하여 엔드포인트를 구성하고 Camel이 파일을 정렬하도록 할 수 있습니다.
샘플에서 파일 이름별로 정렬하는 자체 비교기를 구축했습니다.
그리고 sorter 옵션을 사용하여 경로를 구성하여 Spring XML 파일에 정의한 sorter(mySorter
)를 참조할 수 있습니다.
URI 옵션은 # 구문을 사용하여 빈을 참조할 수있습니다.
Spring DSL 경로에서는 id 앞에 #을 추가하여 레지스트리의 빈을 참조할 수 있습니다. 따라서 sorter=#mySorter
를 작성하면 Camel에 ID가 mySorter
가 있는 빈의 Registry에서 확인하도록 지시합니다.
24.27.2. sortBy를 사용하여 정렬 링크 복사링크가 클립보드에 복사되었습니다!
Camel은 플러그형 정렬 전략을 지원합니다. 이렇게 하면 파일 언어를 사용하여 정렬을 구성합니다. sortBy
옵션은 다음과 같이 구성됩니다.
sortBy=group 1;group 2;group 3;...
sortBy=group 1;group 2;group 3;...
여기서 각 그룹은 대시 콜론으로 구분됩니다. 간단한 상황에서는 한 그룹을 사용하므로 간단한 예제가 될 수 있습니다.
sortBy=file:name
sortBy=file:name
이렇게 하면 파일 이름으로 정렬됩니다. reverse:
를 그룹으로 붙여서 순서를 취소할 수 있으므로 정렬은 이제 Z..A입니다.
sortBy=reverse:file:name
sortBy=reverse:file:name
파일 언어의 전체 기능이 있으므로 다른 매개 변수 중 일부를 사용할 수 있으므로 파일 크기에 따라 정렬하려면 다음을 수행합니다.
sortBy=file:length
sortBy=file:length
이 경우 ignoreCase:
for string comparison를 사용하여 대소문자를 무시하도록 구성할 수 있습니다. 따라서 파일 이름 정렬을 사용하지만 케이스를 무시하려면 다음을 수행합니다.
sortBy=ignoreCase:file:name
sortBy=ignoreCase:file:name
무시 사례와 역방향을 결합할 수 있지만 역방향을 먼저 지정해야 합니다.
sortBy=reverse:ignoreCase:file:name
sortBy=reverse:ignoreCase:file:name
아래 샘플에서 마지막으로 수정된 파일로 정렬하려고 하므로 다음을 수행합니다.
sortBy=file:modified
sortBy=file:modified
그런 다음 이름으로 그룹화하려고 하므로 수정 사항이 동일한 파일이 이름순으로 정렬됩니다.
sortBy=file:modified;file:name
sortBy=file:modified;file:name
이제 문제가 있습니다, 해결할 수 있습니까? 파일의 수정된 타임 스탬프는 밀리초 단위이기 때문에 너무 좋지만 날짜만 기준으로 정렬하고 하위 그룹을 이름으로 정렬하려면 어떻게 해야 합니까?
파일 언어의 진정한 장점이 있기 때문에 패턴을 지원하는 날짜 명령을 사용할 수 있습니다. 따라서 이 문제는 다음과 같이 해결될 수 있습니다.
sortBy=date:file:yyyyMMdd;file:name
sortBy=date:file:yyyyMMdd;file:name
네, 이는 매우 강력하며, 그룹당 리버스를 사용할 수 있는 방법에 따라 oh는 파일 이름을 반전할 수 있습니다.
sortBy=date:file:yyyyMMdd;reverse:file:name
sortBy=date:file:yyyyMMdd;reverse:file:name