Search This Blog

Wednesday, July 9, 2014

Utility Class Using Enum


A utility class using enum:

public enum StringUtil
{
    ;  // enum terminator

    public static void boo ()
    {
        // ...
    }
}

A utility class using class:

public final class StringUtil
{
    public static void boo () {
        // ...
    }

    private StringUtil() {
        // no-init ctor
    }   
}

When using Enum

    ✔ no need for constructor
    ✔ singleton by default
    ✖ automatically extends base Enum class
    ✖ ihnerited Enum methods (name, etc.) available for utility class user
    ✖ Enum static methods (values, etc.) available for utility class user

Friday, January 10, 2014

On-Demand Exporting a Spring Bean via JMX


1) Define the bean to be exported

 <bean id="myBean" class="...." />

2) Define a MBeanExporter

 <bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter" />

2) Get the exporter

 ApplicationContext applicationContext = ...
 MBeanExporter beanExporter = (MBeanExporter) applicationContext.getBean("mbeanExporter");

3) Export the bean

 beanExporter.registerManagedResource(applicationContext.getBean("myBean"), 
                ObjectName.getInstance("com.company:type=Users,name=User-A"));

4) Bean is now accessible via JMX


5) Unregister (if needed)

 beanExporter.unregisterManagedResource (ObjectName.getInstance("com.company:type=Users,name=User-A"));