1.15.3 로우 레벨 리소스에 대한 편리한 접근 by sh
Last updated
Was this helpful?
Last updated
Was this helpful?
어플리케이션 컨텍스트를 최적으로 사용하고 이해하기 위해서는 Resources 자료에서 설명한대로 스프링의 Resource
추상화를 숙지해야 합니다.
응용 프로그램 컨텍스트는 ResourceLoader
이며 Resource
객체를 로드 하는 데 사용할 수 있습니다. Resource
는 본질적으로 JDK java.net.URL
클래스의 보다 기능이 풍부한 버전입니다. 사실, Resource
의 구현은 적절한 경우java.net.URL
인스턴스를 감쌉니다. Resource
는 클래스 패스, 파일 시스템 위치, 표준 URL로 설명할 수 있는 위치 및 기타 변형을 포함하여 거의 모든 위치에서 Low-Level의 리소스들을 투명하게 얻을 수 있습니다. 리소스 위치 문자열이 특별한 접두어 없이 간단한 경로인 경우, 해당 리소스는 실제 응용 프로그램 컨텍스트 유형에 따라 적절합니다.
응용 프로그램 컨텍스트에 배포된 빈을 구성하여 특수 콜백 인터페이스인 ResourceLoaderAware
를 구현하면 응용 프로그램 컨텍스트 자체가 theResourceLoader
로 전달되면서 초기화 시 자동으로 다시 호출될 수 있습니다. 정적 리소스에 액세스 하는 데 사용되는 Resource 유형의 프로퍼티들을 노출할 수도 있습니다. 그것들은 다른 프로퍼티들처럼 이것 안으로 주입됩니다. 이러한 Resource
프로퍼티들을 간단한 String
경로로 지정하고 빈이 배포될 때 해당 텍스트 문자열을 실제 Resource
객체로 변환하기 위해 특수 JavaBean PropertyEditor
(컨텍스트에 의해 자동 등록됨)에 의존할 수 있습니다.
ApplicationContext
생성자에 제공된 위치 경로는 실제로 리소스 문자열이며, 간단한 형태로 특정 컨텍스트 구현에 따라 적절하게 처리됩니다. 예를 들어, ClassPathXmlApplicationContext
는 단순한 위치 경로를 클래스 경로 위치로 취급합니다. 특정 접두어가 있는 위치 경로 (리소스 문자열)를 사용하여 실제 컨텍스트 유형에 관계 없이 클래스 경로 또는 URL에서 정의를 로드 하도록 할 수 있습니다.