2010-02-23 7 views
6

사용자가 임의의 수의 개체 목록을 저장 /로드 할 수 있도록해야합니다 (일련 화 가능하다고 가정). 개념적으로 나는 java : Preferences API 대 Apache Commons Configuration

class FooBean { /* bean stuff here */ } 

class FooList { 
    final private Set<FooBean> items = new HashSet<FooBean>(); 

    public boolean add(FooBean item) { return items.add(item); } 
    public boolean remove(FooBean item) { return items.remove(item); } 
    public Collection<FooBean> getItems() { 
     return Collections.unmodifiableSet(items); 
    } 
} 

class FooStore { 
    public FooStore() { 
     /* something... uses Preferences or Commons Configuration */ 
    } 
    public FooList load(String key) { 
     /* something... retrieves a FooList associated with the key */ 
    } 
    public void store(String key, FooList items) { 
     /* something... saves a FooList under the given key */ 
    } 
} 

같은 데이터 모델 내가 Preferences API 또는 Commons Config 사용해야 싶어? 각각의 장점은 무엇입니까?

답변

1

평상시에는 commons-config로 해결할 수있는 문제가없는 한 일반적으로 JDK의 일부인 Preferences API를 사용합니다.

개인적으로 나는 봄을 사용할 때 이것들 대부분을 나를 위해 해주는 Property Configurer를 가지고있다.

6

커먼 구성은 많은 아파치 프로젝트와 마찬가지로 환경 설정, 환경 설정 파일, 속성 파일 등을 아무렇게나 사용할 수있는 추상화 레이어입니다. 그래서, 귀하의 질문은 그대로 재 작성 될 수 있습니다 : 귀하의 환경 설정을 저장하는 데 사용하는 형식을 변경해야합니까? 없으면 Java 환경 설정을 사용하십시오. 다른 곳에서는 커먼 환경 설정의 이식성을 고려해야합니다. 키

  • 가공과 관련된 바이트 배열로 저장 -

  • 2

    는 각 도서관

    • 기본 설정을 사용할 때 다음과 같은 옵션이 있습니다 것 같다 키에 관련 지을 수 있었던 일련의 값을 저장하여 예를 감안할 때 구성 - 주요

    과 관련된 문자열 목록으로 저장 그래서 선택은 바이트 배열 또는 문자열로 FooBean를 변환하는 것이 더 쉽습니다 여부에 내려 올 수 있습니다.

    Commons Configuration의 또 다른 이점은 다른 백엔드입니다. 데이터베이스에 속성을 저장하는 데 사용했습니다. 사용자 로컬 컴퓨터가 아닌 다른 곳에 개체를 저장하려면 더 나은 선택이 될 것입니다.

    1

    공유 구성은 복잡한 개체 구조를 저장하는 데 적합하지 않습니다. 직렬화 프레임 워크를 사용하는 것이 좋습니다.

    관련 문제