application.properties 와 MyWebConfig.java 설정 설명
application.properties
# 업로드 된 파일이 저장될 폴더 경로 ("/"로 끝나면 안됨)
# => 이 경로가 프로젝트 폴더 안에 존재하면 안됨
# [mac, linux 용]
# upload.dir=/Users/hyeon/upload
# [widows 용] => 드라이브 문자열 앞에 "/" 적용 필요
upload.dir=/C:/HYEON/upload
# 업로드 된 파일이 노출될 URL 경로 ("/" 로 끝나면 안됨)
# => "http://localhost:8080/files" 를 의미
# => "http://localhost:8080/files" 가 "upload.dir"에 명시한 폴더를 의미
upload.url=/files
MyWebConfig.java
@Configuration
@SuppressWarnings("null")
public class MyWebConfig implements WebMvcConfigurer {
.........
/** 업로드 된 파일이 저장될 경로 (application.properties로부터 읽어온다) */
@Value("${upload.dir}")
private String uploadDir;
/** 업로드 된 파일이 노출될 URL 경로 (application.properties로부터 읽어온다) */
@Value("${upload.url}")
private String uploadUrl;
/** 설정파일에 명시된 업로드 저장경로와 URL상의 경로를 맵핑 시킨다 */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(String.format("%s/**", uploadUrl)).addResourceLocations(String.format("file://%s/", uploadDir));
}
}
리소스 핸들러 등록
addResourceHandlers 메서드
ResourceHandlerRegistry를 사용해 업로드된 파일의 URL 경로와 실제 파일 저장 경로를 맵핑한다
uploadUrl 경로로 접근하면 uploadDir 경로에 있는 파일을 제공하도록 설정한다
반응형
'IT > Spring' 카테고리의 다른 글
| Thymeleaf (0) | 2024.11.26 |
|---|---|
| MyBatisSystemException (0) | 2024.11.25 |
| File Upload (3) | 2024.11.21 |
| Interceptor (0) | 2024.10.23 |
| Spring 프로젝트 구성 (0) | 2024.10.16 |