소스의 resources 경로 내에 파일을 보관하여, 제어할때 SpringBoot에서 많은분들이
ClassPathResource 클래스를 이용하시는 것으로 알고 있습니다.
이때 주의할점이 하나 있는데요, 그건 바로 jar나 war로 패키징하여 배포할경우 입니다.
패키징하여 배포시, 아래의 코드는 NullPointerException 혹은 IOException 을 발생시키게 됩니다.
ClassPathResource resource = new ClassPathResource("/keyfile/cert.pem");
resource.getFile();
바로 resource.getFile() 이 부분에서 Exception이 발생하게 되는데요.
그 이유는 패키징하여 배포할경우 resource내에 있는 파일에 직접적인 접근이 안되기 때문입니다.
그 경우 해결방법은 바로 InputStream으로 풀어나가는 것입니다.
String fileByteArr = new String(FileCopyUtils.copyToByteArray(resource.getInputStream()));
위와 같은 방법으로 리소스를 제어하시면, Exception을 피하고 안전한 코딩을 하실 수 있습니다.
감사합니다.
[SpringBoot] 3.0 이상에 대한 JDK 변경점 (0) | 2023.03.09 |
---|---|
[SpringBoot] Spring Boot DevTools란? (0) | 2023.01.26 |
[SpringBoot] 알맞게 동영상 제공해보기 feat. ResourceRegion (0) | 2022.12.15 |
[SpringBoot] FFmpeg 를 통한 영상 다루기 chapter.01 (0) | 2022.12.07 |
[Eureka Server] Netflix Eureka Server 소스 (0) | 2022.08.24 |