Spring classpath
🧩 classpath 란
정의
classpath는 JVM이 클래스와 리소스를 찾기 위해 참조하는 검색 경로이다. 컴파일된.class파일뿐 아니라 설정 파일, 이미지, 템플릿 같은 리소스도 포함될 수 있다.
- JVM이 프로그램을 실행할 때 클래스를 찾는 기준 경로다.
src/main/resources에 들어간 파일은 보통 classpath에 포함된다.- Spring에서는
classpath:접두어로 리소스를 참조하는 경우가 많다.
⚙️ IntelliJ 에서 classpath 설정

- Source, Resources 로 지정된 경로는 모두 classpath에 포함된다.
- 따라서
application.properties, 정적 리소스, XML 설정 파일 등을 classpath 기준으로 읽을 수 있다.
📦 ClassPathResource
역할
ClassPathResource는 classpath 안에 있는 리소스를 읽기 위한 Spring의Resource구현체이다.
- classpath 내부의 파일을 가져올 때 사용한다.
classpath:경로를 코드에서 다루고 싶을 때 유용하다.
public Resource getResource(String relativePath) {
ClassPathResource resource = new ClassPathResource("/WEB-INF/");
return resource.createRelative(relativePath);
}
✅ 사용 예시
- 설정 파일 읽기
- 정적 리소스 참조
- 템플릿 파일 로딩
- 테스트 리소스 접근
⚠️ 주의사항
classpath:는 파일 시스템 경로와 다르다.- 실행 환경에 따라 실제 물리 경로가 달라질 수 있다.
- jar로 패키징하면 classpath 리소스는 파일처럼 직접 수정하기 어렵다.
📌 정리
- classpath는 클래스와 리소스를 찾는 기준 경로다.
- Spring에서는 리소스 로딩과 정적 파일 참조에 자주 사용한다.
- IntelliJ의 Source, Resources 설정이 classpath 구성에 영향을 준다.
댓글남기기