BACKEND.*
ResourceBundle
초코푸딩
2023. 3. 5. 23:28
ResourceBundle은 기본적으로 캐시를 사용하여 성능을 향상시키기 때문에, 리소스 번들의 내용은 기본적으로 JVM 내부 캐시에 저장됩니다. 캐시는 기본적으로 무제한으로 저장됩니다.
1. 캐싱 비우기
ResourceBundle.clearCache(); // 캐시를 지우기 위해 clearCache() 메서드를 호출합니다.
2. 캐시를 일정 시간마다 갱신하도록 구성
하지만 ResourceBundle은 캐시를 일정 시간마다 갱신하도록 구성할 수 있습니다. 이를 위해 ResourceBundle 생성 시 ResourceBundle.Control 클래스의 인스턴스를 사용하여 캐시 갱신 주기를 설정할 수 있습니다.
ResourceBundle.Control 클래스에서는 캐시를 갱신할 시간 간격을 설정할 수 있으며, 이를 지정하지 않으면 기본값으로 30분을 사용합니다. 예를 들어, 캐시를 1시간마다 갱신하도록 설정하려면 다음과 같이 ResourceBundle.Control 클래스의 인스턴스를 생성하면 됩니다.
ResourceBundle.Control control = new ResourceBundle.Control() {
@Override
public long getTimeToLive(String baseName, Locale locale) {
return 3600000L; // 1시간(60분 * 60초 * 1000밀리초)
}
};
ResourceBundle bundle = ResourceBundle.getBundle("myResources", control);
위의 코드에서 getTimeToLive() 메서드를 재정의하여 리소스 번들의 유효 시간을 1시간으로 설정하였습니다. 이렇게 설정하면 ResourceBundle은 1시간마다 자동으로 새로운 리소스 번들을 로드하여 캐시를 갱신합니다.