2.5 ResourceLoaderAware 인터페이스
Last updated
Was this helpful?
Last updated
Was this helpful?
ResourceLoaderAware 인터페이스는 ResourceLoader 레퍼런스를 제공하는 오브젝트들을 식별하는 특별한 마커 인터페이스이다. ResourceLoaderAware 인터페이스의 정의를 보여준다.
클래스는 ResourceLoaderAware를 확장하고 어플리케이션 컨텍스트(스프링이 관리하는 빈으로서) 로 디플로이될 때 어플리케이션 컨텍스트에 의해 ResourceLoaderAware를 인식한다. 그리고나서 어플리케이션 컨텍스트는 setResourceLoader(ResourceLoader)를 주입하고 인자로서 적용한다.(스프링에서 모든 어플리케이션 컨텍스트는 ResourceLoader 인터페이스를 확장하는 것을 기억하자.)
ApplicationContext는 ResourceLoader이기 때문에 빈은 ApplicationContextAware 인터페이스를 확장할 수 있고 리소스를 직접적으로 로드하기 위해 어플리케이션 컨텍스트를 사용한다. 하지만 일반적으로 만약 필요하다면 특정 ResourceLoader 인터페이스를 사용하는 것이 좋다. 코드는 (유틸리티 인터페이스가 고려될 수 있는) 인터페이스를 로드하는 리소스에 결합되고 전체 스프링 ApplicationContext인터페이스는 아니다.
스프링 2.5에서 ResourceLoaderAware 인터페이스를 확장하는 것을 대신하는 것으로서 ResourceLoader를 자동연결하는 것에 의존할 수 있다. "전통적으로" contructor 와 byType 자동연결 모드( 설명된) 는 이제 생성자 인자 뿐 아니라 setter 메소드 파라미터 각각을 위해 ResourceLoader 타입의 의존성을 제공할 가능성이 있다. 더 좋은 유연성을 위해(자동 연결하는 필드 사용 가능성과 여러 파라미터 메소드를 포함하여), 어노테이션 기반의 자동연결된 기능을 사용하는 것을 고려하자. 그런 경우에 ResourceLoader는 필드, 생성사, @Autowired 어노테이션이 붙어진 메소드에서 기대하는 필드, 생성자 인자, 메소드 파라미터에 자동연결된다. 더 심층 정보는 .보자.