Resource 추상화

특징

  • java.net.URL 을 추상화 한 것
  • 스프링 내부에서 많이 사용하는 인터페이스

추상화 한 이유

  • 클래스패스 기준으로 리소스 읽어오는 기능 부재
  • ServletContext를 기준으로 상대 경로로 읽어오는 기능 부재

주요 메서드

 

Resource 주요 구현체

Resource의 타입은 ApplicationContext 의 구현체 타입에 따라 달라진다.

  1. ClassPathResource
    • Classpath 기준으로 Resource를 찾는다
    • ClassPathXmlApplicationContext 와 함께 사용한다
  2. FileSystemResource
    • file system 기준으로 Resource 를 찾는다.
    • FileSystemXmlApplicationContext 와 함께 사용한다.

 

Type 무관한 Resource

  • ApplicationContext의 구현체와 상관 없이 Resource 타입을 강제하고 싶으면 java.net.URI 접두어를 사용한다.
  • 직접 명시하는 것으로 직관성을 높일 수 있다.
  1. ClassPathResource 에서 사용하는 접두어
    • classpath
      • classpath:/application.properties -> 현재 프로젝트의 classpath
      • classpath*:/application.properties -> 상위 프로젝트의 classpath 포함
  2. FileSystemResource 에서 사용하는 접두어
    • file
      • file://resource/application.properties -> 파일의 물리 경로

댓글

Designed by JB FACTORY