더북(TheBook)

이제 리소스를 동적으로 로드하려는 경우 어떻게 될까? 아마 실행 시간에 메뉴를 변경하고 싶을 것이다. 어쩌면 주식 시장 가치와 정의처럼 몇몇 값을 변경해야 하는 애플리케이션이 있을 수도 있다. 이때 애플리케이션을 중단하지 않고 수정한 다음 재배포하길 원할 것이다. 리소스를 저장한 후에는 실제로 새로운 변경을 적용하려고 한다. 스프링 프레임워크는 몇몇 리소스를 로드하고 비즈니스 규칙에 따라 변경하고 싶은 경우에 사용할 수 있는 ResourceLoader 클래스도 제공한다. 예제 6-6은 ResourceLoader 클래스를 사용하는 방법을 보여준다.

 예제 6-6 ResourceLoaderMenu.java

package com.apress.isf.spring.views;

 

import static java.lang.System.out;

 

import java.io.IOException;

import java.io.InputStream;

import java.util.Scanner;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.core.io.ResourceLoader;

import org.springframework.stereotype.Component;

 

@Component("menu")

public class ResourceLoaderMenu {

 

@Autowired

private ResourceLoader resourceLoader;

 

public void printMenu(String menuFile) {

try {

InputStream stream =

resourceLoader.getResource(menuFile).getInputStream();

Scanner scanner = new Scanner(stream);

while (scanner.hasNext()) {

out.println(scanner.nextLine());

}

scanner.close();

stream.close();

} catch(IOException e) {

e.printStackTrace();

}

}

 

}


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.