ConstructorParameters
ConstructorParameters (생성자 파라미터 매핑 애너테이션)
생성자의 파라미터가 생성된 객체의 getter 메서드와 어떻게 대응하는지 나타내는 애너테이션이에요. JMX가 MXBean의 속성을 역추적할 때 이 정보를 사용해요.
본문
예를 들어 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부터 제공돼요.