Spring

classpath에 위치한 resource를 가져오는 다양한 방법

김종현 2022. 4. 3. 20:46

Spring에서 file, classpath에 위치한 리소스를 제공해주는 Resource 라는 추상화된 인터페이스를 제공해준다.

 

이번글에서는 Resource 인터페이스의 구현체인 ClassPathResourcePathMatchingResourcePatternResolver를 이용하여 classpath에 위치한 resource를 가져오는 5가지의 방법을 알아보도록 한다.

 

classpath resource

현재 classpath의 resource에는 다음과 같은 디렉토리 및 파일들이 존재한다.

classpath resource 조회

ClassPathResource 생성자 또는 PathMatchingResourcePatternResolver 클래스의 getResource 메서드로 classpath에 위치한 리소스이름을 인자로 넣어주면 해당 리소스의 정보를 가져올 수 있다.



PathMatchingResourcePatternResolver 클래스의 getResources 메서드로 리소스이름을 정규식 문자열로 넣어주면 해당 정규식패턴과 일치하는 리소스의 정보를 가져올 수 있다.

 

첫번째 사진에서는 PathMatchingResourcePatternResolver의 getResource 메서드를 이용하였는데 이 메서드는 정규식패턴을 지원하지 않고 getResources 메서드가 정규식패턴을 지원해주니 이름을 헷갈려하지 않도록 주의해서 사용하자.



파일명뿐만 아니라 디렉토리명도 와일드카드를 이용해서 모든 디렉토리의 리소스를 조회할 수 있다.



모든 디렉토리가 아닌 특정 디렉토리를 정규식을 이용해서 가져올 수 있다. 디렉토리 이름이 'b'로 시작하는 즉, 특정이름으로 시작하는 디렉토리의 모든 리소스를 조회할 수도 있다.



위 사진과 반대로 디렉토리 이름이 'r'로 끝나는 즉, 특정이름으로 끝나는 디렉토리의 모든 리소스도 조회할 수 있다.

728x90