MBeanServerFactory

MBeanServerFactory (MBean 서버 팩토리)

MBean 서버 참조를 제공하는 클래스예요. 이 클래스에는 인스턴스가 없어요. JMX 1.2부터 이 클래스를 통해 기본 MBeanServer 구현을 교체할 수 있게 됐어요.

출처: Java API Reference

본문

MBeanServerFactoryMBeanServerBuilder 클래스를 사용해 기본 MBeanServer 구현을 교체할 수 있게 해줘요. 최초 생성할 MBeanServerBuilder의 클래스는 javax.management.builder.initial 시스템 프로퍼티로 지정할 수 있어요. 지정된 클래스는 MBeanServerBuilder의 public 하위 클래스여야 하고 public 빈 생성자를 가져야 해요.

이 프로퍼티에 값이 없으면 javax.management.MBeanServerBuilder 인스턴스가 생성돼요. 그 외에는 지정된 클래스를 컨텍스트 클래스 로더(getContextClassLoader()) 또는 Class.forName()으로 로드해 인스턴스를 만들어요. 이 과정에서 checked 예외가 발생하면 RuntimeException 안에서 전파돼요.

제공되는 정적 메서드는 다음과 같아요.

  • createMBeanServer() / createMBeanServer(String domain): 기본 도메인 이름을 가진 MBeanServer를 만들고 내부 참조를 유지해요. findMBeanServer가 이 객체에 대한 참조를 반환할 수 있게 해줘요.
  • newMBeanServer() / newMBeanServer(String domain): MBeanServer를 만들지만 내부 참조는 유지하지 않아요. 가비지 컬렉터가 더 이상 참조되지 않을 때 MBeanServer를 제거할 수 있어요.
  • findMBeanServer(String agentId): 등록된 MBeanServer 객체 목록을 반환해요.
  • releaseMBeanServer(MBeanServer): 생성된 MBeanServer에 대한 내부 참조를 제거해 가비지 컬렉션이 가능하게 해줘요.

기본 도메인 이름은 DefaultDomain이며, 사용자가 도메인을 지정하지 않았을 때 MBean의 ObjectName의 도메인 부분으로 사용돼요. 보안 관리자가 있는 경우 각 메서드는 해당 MBeanServerPermission을 요구해요.

더 알아보기 (Learn more)

Java 공식 API