Java 8에서는 MBean 또는 MXBean을 작성하는 데 사용되는 인터페이스에 대해 가시성 요구사항에 대한 동작 변경을 소개합니다. 모든 MBean 및 MXBean 인터페이스가 공용이어야 합니다. Java 8 이전에서, 비공용 인터페이스가 허용되었지만 스펙에서는 공용이어야 한다고 정의했습니다.
jdk.jmx.mbeans.allowNonPublic 시스템 특성을 설정하면 이전 동작을 사용하도록
관리 서브시스템을 되돌려서, 비공용 관리 인터페이스를 허용합니다.
이 특성은 과도적으로 간주되고 후속 릴리스에서 제거될 수도 있습니다.
비공용 MBean 및 MXBean 인터페이스를 발견하려면 다음 상황이 Java 코드에서 플래그가 지정됩니다.
@MXBean으로 어노테이션이 있는 비공용 인터페이스@MXBean(true)으로 어노테이션이 있는 비공용 인터페이스MXBean으로 끝나는 이름의 비공용 인터페이스MBean으로 끝나는 이름의 비공용 인터페이스
MBean 인터페이스 이름을 MBean으로 끝내는 경우 이는 요구사항이 아니라
관습이므로, 관리 Bean을 작성하는 경우 이 Java 8 차이점을 강조표시하도록 MBeanServer registerMBean
또는 createMBean 메소드의 호출도
플래그가 설정됩니다.
관리 Bean 인터페이스가 이전에 나열된 관습을 따르지 않는 경우
공용 인터페이스를 사용하는지 수동으로 확인하십시오.
다음 예제에서는 이 규칙에서 플래그가 설정되는 비공용 인터페이스를 표시합니다.
interface Example1MBean {}
interface Example2MXBean {}
@MXBean
interface Example3Interface {}
@MXBean(true)
interface Example4Interface {}
|
다음 예제에서는 이미 공용이거나 MXBean이 아닌 것으로 어노테이션이 있으므로 이 규칙에서 플래그가 설정되지 않은 인터페이스를 표시합니다.
public interface Example5MBean{}
public interface Example6MXBean{}
@MXBean(false)
interface Example7MXBean {}
|
이 규칙에는 인터페이스 가시성을 public으로 설정하는 자동화된 수정사항이 있습니다. 수정사항 자동화를 사용으로 설정하려면 사용자 정의 구성을 애플리케이션 빌드 파일에 복사하십시오.
MBeanServer registerMBean
및 createMBean
메소드에 대한 호출은 인터페이스에 플래그가 지정되지 않은 경우
동작 변경을 강조 표시하기 위해서만 플래그가 지정됩니다.
추가 정보는 패키지 javax.management Java 문서를 참조하십시오.