【发布时间】:2014-06-25 06:52:27
【问题描述】:
我有一个 spring 项目,其中有我的自定义 mbean(由用户定义)和 jar 提供的 mbean。如果我不必公开自定义 mbean 的少量操作,我可以将 mathod 名称值放在汇编器中的属性下:ignoreMethods。 我的问题是:如果我不必公开已经公开的第三方jar mbean的方法,我该怎么办?
【问题讨论】:
标签: java spring mbeans spring-jmx
我有一个 spring 项目,其中有我的自定义 mbean(由用户定义)和 jar 提供的 mbean。如果我不必公开自定义 mbean 的少量操作,我可以将 mathod 名称值放在汇编器中的属性下:ignoreMethods。 我的问题是:如果我不必公开已经公开的第三方jar mbean的方法,我该怎么办?
【问题讨论】:
标签: java spring mbeans spring-jmx
如果第三方 jar 自己在内部向 MBeanServer 注册 MBean,则您无法控制。如果您使用 Spring 公开 MBean,那么您可以控制公开的内容。
编辑:
如果您使用<context:mbean-export/>
,它会创建一个AnnotationMBeanExporter
,默认情况下会自动检测匹配MBean命名规则的类。
您可以通过将导出器声明为<bean/>
并将其autoDectedMode
设置为0 或将autoDetectModeName
设置为AUTODETECT_NONE
来关闭它。
【讨论】:
<bean/>
,是的,它将被注册,但我编辑了答案以显示如何禁用它。