С помощью JMX-бинов можно предоставить доступ к некоторой административной функциональности вашего приложения без создания пользовательского интерфейса для нее. Данная функциональность будет также доступна через встроенную JMX-консоль и через внешние инструменты JMX, например jconsole
.
В нашем примере со скидками пользователь, имеющий доступ к JMX-консоли, сможет пересчитывать скидки для всех заказчиков или для заказчика с указанным id.
Studio на данный момент не умеет создавать заготовки JMX-бинов, поэтому все классы и конфигурационные элементы придется создавать вручную в IDE.
См. пример реализации в демо-приложении:
-
{proj_business_logic}/blob/master/modules/core/src/com/company/sample/core/jmx/DiscountsMBean.java[DiscountsMBean.java] - интерфейс JMX-бина.
-
{proj_business_logic}/blob/master/modules/core/src/com/company/sample/core/jmx/Discounts.java[Discounts.java] - реализация JMX-бина.
-
{proj_business_logic}/blob/master/modules/core/src/com/company/sample/core/DiscountCalculator.java[DiscountCalculator.java] - бин среднего слоя, вызываемый JMX-бином. JMX-бин мог бы содержать бизнес-логику сам, но мы используем этот делегат для того, чтобы разделять логику с entity listener и JMX бином.
-
{proj_business_logic}/blob/master/modules/core/src/com/company/sample/spring.xml[spring.xml] - в данном файле JMX-бин регистрируется.