문제

재산 값을 조회하기 위해 ResourceBundle 및 Locale을 사용하고 있습니다. 간단히 말해서 코드는 다음과 같습니다.

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

내 질문은 성능에 관한 것입니다. 캐싱 접근 방식이 클래스 경로의 속성 파일에 액세스하는 것보다 빠르거나 더 나은 구현일까요? 내 이해는 ResourceBundle 성능이 일반적으로 매우 우수하다는 것입니다.

속성 파일 (이 경우)은 30 줄 미만 (예 : ~ 30 키/값 쌍)입니다.

고 부하 페이지에서 비슷한 접근 방식을 사용할 수 있기 때문에 성능에 의문을 제기하며 주문형 접근 방식이 비용이 많이 드는 것으로 나타났습니다.

도움이 되었습니까?

해결책

에 따르면 Javadocs:

리소스 번들 인스턴스가 작성했습니다 getBundle 공장 방법은 기본적으로 캐시되고 공장 메소드는 캐시 된 경우 동일한 자원 번들 인스턴스를 여러 번 반환합니다.

따라서 스스로 캐싱 할 필요는 없습니다. 그러나 캐싱 동작에 대한 세밀한 통제가 필요한 경우 getBundle(String, ResourceBundle.Control) 과부하 및 사용자 정의를 통과합니다 Control 안에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top