ConstructorParameters

ConstructorParameters (생성자 파라미터 매핑 애너테이션)

생성자의 파라미터가 생성된 객체의 getter 메서드와 어떻게 대응하는지 나타내는 애너테이션이에요. JMX가 MXBean의 속성을 역추적할 때 이 정보를 사용해요.

출처: Java API Reference

본문

예를 들어 MemoryUsage 클래스가 있고 생성자 파라미터 순서대로 getter가 있다면 다음과 같이 애너테이션을 달 수 있어요:

public class MemoryUsage {
    @ConstructorParameters({"init", "used", "committed", "max"})
    public MemoryUsage(long init, long used, long committed, long max) {...}
    public long getInit() {...}
    public long getUsed() {...}
    public long getCommitted() {...}
    public long getMax() {...}
}

이 애너테이션은 생성자의 첫 번째 파라미터를 getInit()으로, 두 번째를 getUsed()로 얻을 수 있음을 나타내요. 파라미터 이름은 런타임에 항상 사용 가능한 것이 아니므로, 이 애너테이션이 없으면 어떤 파라미터가 어떤 속성(property)에 해당하는지 알 수 없어요.

만약 생성자가 @java.beans.ConstructorProperties@javax.management.ConstructorParameters를 동시에 달고 있다면, JMX 인트로스펙션은 후자(ConstructorParameters)에 절대적인 우선권을 줘요. Java 9부터 제공돼요.

더 알아보기 (Learn more)

Java 공식 API