소개
지정된 클래스 경로 디렉토리에서 리소스 목록을 가져오는 것은 Java 프로그래밍의 일반적인 작업입니다. 이러한 리소스를 효율적으로 검색하기 위해 다양한 라이브러리와 기술을 활용할 수 있습니다.
기존 라이브러리 구현
Spring Framework
Spring Framework는 PathMatchingResourcePatternResolver를 제공합니다. Ant와 유사한 경로 패턴을 사용하여 리소스를 해결할 수 있는 클래스입니다. 예를 들면 다음과 같습니다.
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver.getResources("classpath:/x/y/z/*");
Ronmamo Reflections
Ronmamo Reflections는 컴파일 시간에 검색을 사전 컴파일하여 대규모 클래스 경로에 대한 런타임 성능 오버헤드를 줄여 더 빠른 접근 방식을 제공합니다.
Reflections reflections = new Reflections("x.y.z"); Set<String> resources = reflections.getResources(Pattern.compile(".*"));
사용자 정의 스캐너
만들기 사용자 정의 스캐너는 리소스를 얻는 간단한 방법입니다. getResourceAsStream() 메소드를 사용하여 클래스 경로를 순회하는 작업이 포함됩니다. 그러나 특히 JAR 파일의 경우 위 솔루션만큼 효율적이지 않을 수 있습니다.
List<String> resources = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new InputStreamReader(getResourceAsStream("x/y/z")))) { String resource; while ((resource = br.readLine()) != null) { resources.add(resource); } } catch (IOException e) { // handle exception }
구현 고려 사항
구현 선택은 특정 요구 사항에 따라 다릅니다. 그리고 성능 고려 사항. 더 작은 클래스 경로와 자주 사용하지 않는 경우에는 사용자 정의 스캐너로 충분할 수 있습니다. 더 큰 클래스 경로나 실시간 요구 사항의 경우 Spring 또는 Reflections 라이브러리를 사용하는 것이 좋습니다.
위 내용은 Java 클래스 경로 디렉토리에서 리소스를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!