MBeanServerInvocationHandler

MBeanServerInvocationHandler (MBean 서버 프록시 핸들러)

MBean의 관리 인터페이스에 있는 메서드를 MBean 서버를 통해 MBean으로 전달하는 InvocationHandler예요. MBeanServerConnection, MBean 서버 안의 MBean ObjectName, 그리고 Standard MBean 또는 MXBean 패턴으로 관리 인터페이스를 기술하는 Java 인터페이스 Intf가 주어지면, 이 클래스로 MBean의 프록시를 만들 수 있어요.

출처: Java API Reference

본문

이 핸들러로 만든 프록시는 인터페이스 Intf를 구현하며, 모든 메서드가 MBean 서버를 통해 MBean으로 전달돼요.

MXBean용 핸들러라면 메서드의 파라미터는 MXBean 인터페이스에 선언된 타입에서 매핑된 타입으로 변환되고, 반환값은 매핑된 타입에서 선언된 타입으로 변환돼요. 예를 들어 public List<String> reverse(List<String> list) 메서드에서 List<String>의 매핑 타입이 String[]이라면, proxy.reverse(someList) 호출은 someListList<String>에서 String[]로 변환해 reverse 연산을 호출하고, 반환된 String[]을 다시 List<String>으로 변환해요.

두 개의 생성자를 제공해요:

  • MBeanServerInvocationHandler(MBeanServerConnection, ObjectName): Standard MBean용으로, JMX.newMBeanProxy와 동등하며 false를 전달한 것과 같아요.
  • MBeanServerInvocationHandler(MBeanServerConnection, ObjectName, boolean isMXBean): Standard MBean 또는 MXBean용이에요.

Object.toString(), hashCode(), equals() 메서드는 프록시의 인터페이스에 나타날 때만 MBean 서버로 전달돼요. 그렇지 않으면 프록시 자체의 문자열, 해시 코드, 동등성 비교를 반환해요.

더 알아보기 (Learn more)

Java 공식 API