반응형
ResourceLoader
- 리소스를 읽어오는 기능을 제공하는 인터페이스
리소스 로더의 역할을 한다.
ApplicationContext extends ResourceLoader
>> ApplicationContext 를 받아서 사용할 수 도 있고, ResourceLoader을 받아서 할 수 도있다.
명확하게 ResourceLoader 을 받아서 하는 것을 추천한다.
1. ResourceLoader을 이용해 리소스 파일 읽어오기
1) 클래스패스로 읽어오기
- 리소스 파일 생성
- 소스
package com.bpkim.demospring51;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RestController;
import java.nio.file.Files;
import java.nio.file.Path;
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
ResourceLoader resourceLoader;
@Override
public void run(ApplicationArguments args) throws Exception{
System.out.println(resourceLoader.getClass());
Resource resource = resourceLoader.getResource("classpath:test.txt");
System.out.println(resource.getClass());
// 리소스 파일 존재
System.out.println(resource.exists());
System.out.println(resource.getDescription());
Resource resource1 = resourceLoader.getResource("classpath:test_no.txt");
System.out.println(resource1.getClass());
// 리소스 파일 없음
System.out.println(resource1.exists());
System.out.println(resource1.getDescription());
// System.out.println(Files.readString(Path.of(resource.getURI())));
}
}
- 실행 결과
text.txt 는 exixts() 에서 true
text_no.txt는 false 를 리턴하였다.
반응형
'개발 > Spring' 카테고리의 다른 글
Validation 추상화 (0) | 2021.04.22 |
---|---|
Resource 추상화 (0) | 2021.04.22 |
IoC - ApplicationEventPublisher (0) | 2021.04.11 |
IoC - MessageSource (0) | 2021.04.11 |
IoC - Environment - 프로퍼티 (0) | 2021.04.11 |