@Override
publicvoidaddResourceHandlers(ResourceHandlerRegistryregistry) {
// /uploads/** 요청 → 서버 파일 시스템 경로로 매핑
registry.addResourceHandler("/uploads/**")
.addResourceLocations("file:"+uploadDir+"/");// uploadDir: application.yml 경로 주입
}
registry.addResourceHandler("/uploads/**")
→ 브라우저에서 /uploads/파일명 으로 접근 가능
addResourceLocations("file:" + uploadDir + "/")
→ 실제 서버 로컬 파일 경로를 연결 (file: 접두사 필수)
[클라이언트 요청: /uploads/example.png]
│
▼
WebMvcConfigurer.addResourceHandlers
│
▼
실제 서버 파일 경로: uploadDir/example.png
│
▼
클라이언트에게 파일 응답
클라이언트는 DB 없이 서버 파일 시스템에서 직접 파일을 받아옴
업로드 디렉토리(uploadDir)는 application.yml 또는 application.properties에서 주입
app:
upload-dir: C:/upload
마지막 /를 붙여야 하위 디렉토리 파일까지 접근 가능
/uploads/**를 **permitAll()**로 설정하면 인증 없이 접근 가능