## org.springframework.jmx.export.naming
Class KeyNamingStrategy

    java.lang.Object
      org.springframework.jmx.export.naming.KeyNamingStrategy

All Implemented Interfaces:
  InitializingBean, ObjectNamingStrategy

    public class KeyNamingStrategy

extends Object
implements ObjectNamingStrategy, InitializingBean

`ObjectNamingStrategy` implementation that builds `ObjectName` instances from the key used in the "beans" map passed to `MBeanExporter`.

Can also check object name mappings, given as `Properties` or as `mappingLocations` of properties files. The key used to look up is the key used in `MBeanExporter`'s "beans" map. If no mapping is found for a given key, the key itself is used to build an `ObjectName`.

Since:
  1.2
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  `setMappings(java.util.Properties)`, `setMappingLocation(org.springframework.core.io.Resource)`, `setMappingLocations(org.springframework.core.io.Resource[])`, `MBeanExporter.setBeans(java.util.Map<java.lang.String, java.lang.Object>)`

Field Summary
`protected Log` `logger` `Log` instance for this class.

Constructor Summary
`KeyNamingStrategy()`

Method Summary
`void` `afterPropertiesSet()` Merges the `Properties` configured in the `mappings` and `mappingLocations` into the final `Properties` instance used for `ObjectName` resolution.
`ObjectName` `getObjectName(Object managedBean, String beanKey)` Attempts to retrieve the `ObjectName` via the given key, trying to find a mapped value in the mappings first.
`void` `setMappingLocation(Resource location)` Set a location of a properties file to be loaded, containing object name mappings.
`void` `setMappingLocations(Resource[] mappingLocations)` Set location of properties files to be loaded, containing object name mappings.
`void` `setMappings(Properties mappings)` Set local properties, containing object name mappings, e.g.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final Log logger

  `Log` instance for this class.

Constructor Detail

### KeyNamingStrategy

    public KeyNamingStrategy()

Method Detail

### setMappings

    public void setMappings(Properties mappings)

  Set local properties, containing object name mappings, e.g. via the "props" tag in XML bean definitions. These can be considered defaults, to be overridden by properties loaded from files.

### setMappingLocation

    public void setMappingLocation(Resource location)

  Set a location of a properties file to be loaded, containing object name mappings.

### setMappingLocations

    public void setMappingLocations(Resource[] mappingLocations)

  Set location of properties files to be loaded, containing object name mappings.

### afterPropertiesSet

    public void afterPropertiesSet()
                            throws IOException

  Merges the `Properties` configured in the `mappings` and `mappingLocations` into the final `Properties` instance used for `ObjectName` resolution.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  Throws:
    `IOException`

### getObjectName

    public ObjectName getObjectName(Object managedBean,
                                    String beanKey)
                             throws MalformedObjectNameException

  Attempts to retrieve the `ObjectName` via the given key, trying to find a mapped value in the mappings first.

  Specified by:
    `getObjectName` in interface `ObjectNamingStrategy`
  Parameters:
    `managedBean` - the bean that will be exposed under the returned `ObjectName`
    `beanKey` - the key associated with this bean in the beans map passed to the `MBeanExporter`
  Returns:
    the `ObjectName` instance
  Throws:
    `MalformedObjectNameException` - if the resulting `ObjectName` is invalid