我正在使用Play Framework(Scala)构建我的应用程序,需要通过JMX公开一些内部管理工具。 在Play Framework中使用JMX Mbeans的建议或最佳方法是什么? 我不使用Spring。
答案 0 :(得分:2)
您可以定义global settings object并在那里注册您的MBean。最小的例子:
trait SampleMBean {
def greetings: String
}
class Sample extends SampleMBean {
override def greetings = "Hello!"
}
object Global extends GlobalSettings {
lazy val mbeanServer: MBeanServer = ManagementFactory.getPlatformMBeanServer()
override def onStart(app: Application): Unit = {
mbeanServer.registerMBean(new Sample, new ObjectName("com.example:type=Sample"))
}
override def onStop(app: Application): Unit = {
mbeanServer.unregisterMBean(new ObjectName("com.example:type=Sample"))
}
}
请注意,在第一次向服务器发出请求后,如果它在 DEV 模式下运行,则会调用onStart
。