java 객체 초기화 라이브러리

exsider의 이미지

제가 요즘 java 객체 초기화 관련 라이브러리를 찾고 있는데요, 이런게 있는지 알고 싶습니다.
대충 어떤식으로 쓰이는지 예를 들어보겠습니다.

초기화하려는 객체는 클래스를 다음처럼 선언합니다.

public class SomeClass {
    private String encoding ;
    private String name ;
 
    @Init( doc="인코딩설정" , defaultValue="UTF-8"  )
    public setEncoding(String encoding) {
        this.encoding = encoding ;
    }
 
 
    @Init( doc="파일명설정" , defaultValue="Unknown.txt" )
    public setName(String name) {
        this.name = name ;
    }
 
 
    public void doWork() {
        // encoding 과 name 으로 필요한 작업 수행 
    }
}

설정가능한 프로퍼티에는 @Init 어노테이션으로 설명과 기본값을 지정합니다.

이 클래스 객체를 쓸 때는 다음처럼 합니다.

SomeClass obj = new SomeClass() ;
 
Map properties = new HashMap() ;
properties.put("name" , "somename.txt") ;
Initializer.init(obj , properties) ;
 
obj.doWork() ;

encoding 은 따로 설정하지 않았기 때문에 UTF-8 로 자동 설정됩니다.

그리고 어노테이션 정보를 바탕으로 설정가능한 값을 문서로 만들어 준다면 좋겠지요.

SomeClass
 
프로퍼티      타입       기본값       설명
encoding    String     UTF-8      인코딩설정
name        String     Unknown    파일명설정

요약해보면 어노테이션을 이용하여 설정가능한 프로퍼티와 기본값, 설명을 클래스에 선언하면
이 정보를 바탕으로 객체 초기화 작업을 해주고 관련 문서도 생성할 수 있는 라이브러리입니다.

혹시 이런 식으로 동작하는 라이브러리를 보신적이 있나요? 지금까지 제가 '이런게 필요해...'
했던 것은 전부 이미 만들어져 있더군요.
그리고 이런 라이브러리가 있으면 유용할까요?