외부 특정 디렉토리에 다운로드 가능한 파일들을 저장해 두고 파일을 다운로드 할 수 있도록 하는 방법이다. 컨트롤러를 만들어 하는 방법도 있겠으나 Recource를 이용하여 별다른 컨트롤러를 따로 만들지 않고도 구현 가능하다.
WebMvcConfigurer
를 통해 리소스 디렉토리를 지정하면 된다.
@Configuration
public class ResourceConfig implements WebMvcConfigurer {
final Path FILE_ROOT = Paths.get("./project_files").toAbsolutePath().normalize();
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
// 다운로드 매핑할 uri 지정
.addResourceHandler("/resources/**")
// 실제 파일이 존재하는 디렉토리 지정(일반적으로 application.properties 를 이용한다)
.addResourceLocations(FILE_ROOT.toUri().toString());
}
}
spring framework의 장점. 간결한 몇줄 코드로 해결 가능하다.
주의사항
spring-security를 사용하고 있다면 아래와 같은 추가 설정이 필요하다.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers(
"/resources/**",
...
);
}
}
'개발자의 정보 > Java & framework' 카테고리의 다른 글
데이터 과학을 위한 Kotlin (0) | 2020.03.26 |
---|---|
spring-framework 관련 교육 영상 (0) | 2020.03.19 |
리눅스 서버에서 spring-boot service 등록하기 (0) | 2020.03.09 |
ExecutorService를 이용해 multi thread 활용하기 (Java) (0) | 2020.02.19 |
Spring에서 MultipartFile로 파일 저장 / 다운로드 (0) | 2020.02.15 |
Bean의 생성과 소멸에 발생되는 이벤트 (0) | 2020.02.13 |
Java에서 Jackson 사용중 JSON data에 특정 field 제외 하거나 포함하기 (0) | 2020.02.13 |
Simplified sorting in List (0) | 2020.02.12 |
댓글