MBeanServerFactory
MBeanServerFactory (MBean 서버 팩토리)
MBean 서버 참조를 제공하는 클래스예요. 이 클래스에는 인스턴스가 없어요. JMX 1.2부터 이 클래스를 통해 기본 MBeanServer 구현을 교체할 수 있게 됐어요.
본문
MBeanServerFactory는 MBeanServerBuilder 클래스를 사용해 기본 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을 요구해요.