Resource를 속성으로 가지는 클래스
Resource로 사용할 파일의 이름이나 위치가 자주 바뀌는 경우에 Resource 타입의 변수를 가지고 있는 클래스의 속성을 configuration 파일에 설정 해두는 것이 편할 수 있습니다.
public class PlainResourceHolder {
private Resource resource;
private Resource resource;
public Resource getResource() {
return resource;
}
public void setResource(Resource resource) {
this.resource = resource;
}
}
이렇게 Resource를 가지고 있는 클래스가 있을 때 설정 파일에서도 prefix를 사용해서 Resourc에 값을 넣어 줄 수 있습니다.
<bean id="holder2" class="resource.PlainResourceHolder">
<property name="resource" value="file:resourceTest.txt" />
</bean>
<property name="resource" value="file:resourceTest.txt" />
</bean>
다음과 같이 테스트를 해보면 원하는 대로 일이 처리 된 걸 확인할 수 있습니다.
@Test public void resourceFromConfiguration(){
PlainResourceHolder holder = (PlainResourceHolder)context.getBean("holder2");
Resource resource = holder.getResource();
assertTrue(resource.exists());
assertTrue(resource.getFilename().equals("resourceTest.txt"));
}
PlainResourceHolder holder = (PlainResourceHolder)context.getBean("holder2");
Resource resource = holder.getResource();
assertTrue(resource.exists());
assertTrue(resource.getFilename().equals("resourceTest.txt"));
}