使用 JMX 管理 Spring Bean
在应用程序中,Spring 的依赖注入(DI)是配置 Bean 属性的好方法。但当应用部署并运行后,仅靠 DI 难以改变配置。若要深入运行中的应用并动态更改配置,Java 管理扩展(JMX)就能派上用场。
JMX 简介
JMX 可用于管理、监控和配置应用程序。它最初是 Java 的独立扩展,现在是 Java 5 发行版的标准部分。应用中使用 JMX 管理的关键组件是 MBean(托管 Bean),它是一种 JavaBean,通过暴露特定方法来定义管理接口。JMX 规范定义了四种类型的 MBeans:
1. 标准 MBeans :管理接口由 Bean 类实现的固定 Java 接口反射确定。
2. 动态 MBeans :管理接口在运行时通过调用 DynamicMBean 接口的方法确定,可在运行时变化。
3. 开放 MBeans :一种特殊的动态 MBean,其属性和操作限于基本类型、基本类型的包装类以及可分解为基本类型或基本类型包装类的任何类型。
4. 模型 MBeans :也是一种特殊的动态 MBean,用于将管理接口与托管资源连接起来,通常由使用元信息组装管理接口的工厂生成。
Spring 的 JMX 模块可将 Spring Bean 导出为模型 MBeans,让我们在应用运行时查看和调整配置。下面看看如何让 Spring 应用支持 JMX,从而管理 Spring 应用上下文中的 Bean。