Resource 추상화
Spring framework는 대부분의 기능이 추상화되어 있어 필요한 기능이 있으면 적절한 구현체를 선택하여 사용할 수 있다.
Resource 또한 추상화되어 있어 사용자가 필요한 기능을 선택하여 구현할 수 있게 되어 있다.
Resource 주요 메소드
-
exists()
- resource가 반드시 존재하리라는 보장이 없다. 존재 여부를 검사한다.
-
getFile()
- resource의 file handle을 받아온다.
-
getURI()
- resource의 URI handle을 받아온다.
-
getURL()
- resource의 URL handle을 받아온다.
더 많은 정보는 Resource (Spring Framework 5.2.3.RELEASE API)를 참고하자.
Resource 주요 구현체
Resource
의 타입은 ApplicationContext
의 구현체 타입에 따라 달라진다.
-
ClassPathResource
- Classpath 기준으로 Resource를 찾는다.
ClassPathXmlApplicationContext
와 함께 사용한다.
-
FileSystemResource
- file system 기준으로 Resource를 찾는다.
FileSystemXmlApplicationContext
와 함께 사용한다.
Type 무관한 Resource
ApplicationContext
의 구현체와 상관 없이 Resource 타입을 강제하고 싶으면 java.net.URI
접두어를 사용한다.
직접 명시하는 것으로 직관성을 크게 높일 수 있다.
-
ClassPathResource
에서 사용하는 접두어- classpath
- classpath:/application.properties -> 현재 프로젝트의 classpath
- classpath*:/application.properties -> 상위 프로젝트의 classpath 포함
- classpath
-
FileSystemResource
에서 사용하는 접두어- file
- file://resource/application.properties -> 파일의 물리 경로
- file
'Java > Spring framework' 카테고리의 다른 글
Spring framework core (10) - Data binding (0) | 2020.01.17 |
---|---|
Spring framework core (9) - Validation (0) | 2020.01.15 |
Spring framework core (7) - ResourceLoader (0) | 2020.01.14 |
Spring framework core (6) - ApplicationEventPublisher (0) | 2020.01.14 |
Spring framework core (5) - Message Source (0) | 2020.01.12 |