하지만 잠깐, 유닛 테스트(예제 6-2 참고)에서 리소스 파일을 로드한다고? 리소스를 로드하는 여러 방법이 있지만, 당연히 여러분의 클래스 중 하나에서 특정 방법을 사용해야 하지 않을까? 그러므로 예제 6-3, 예제 6-4 그리고 예제 6-5와 같이 스프링의 의존성 주입 기능을 사용하자. 예제 6-3은 menuFile을 세터와 게터를 통한 프로퍼티로 이용해 org.springframework.core.io.Resource 클래스를 사용하는 예를 보여준다.
예제 6-3 Menu.java
package com.apress.isf.spring.views;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
import static java.lang.System.out;
import org.springframework.core.io.Resource;
public class Menu {
private Resource menuFile = null;
public Resource getMenuFile() {
return menuFile;
}
public void setMenuFile(Resource menuFile) {
this.menuFile = menuFile;
}
public void printMenu() {
try {
InputStream stream = getMenuFile().getInputStream();
Scanner scanner = new Scanner(stream);
while (scanner.hasNext()) {
out.println(scanner.nextLine());
}
scanner.close();
stream.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}