JmxAutoConfiguration Class — spring-boot Architecture
Architecture documentation for the JmxAutoConfiguration class in JmxAutoConfiguration.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jmx/JmxAutoConfiguration.java lines 53–103
@AutoConfiguration
@EnableConfigurationProperties(JmxProperties.class)
@ConditionalOnClass({ MBeanExporter.class })
@ConditionalOnBooleanProperty("spring.jmx.enabled")
public final class JmxAutoConfiguration {
private final JmxProperties properties;
JmxAutoConfiguration(JmxProperties properties) {
this.properties = properties;
}
@Bean
@Primary
@ConditionalOnMissingBean(value = MBeanExporter.class, search = SearchStrategy.CURRENT)
AnnotationMBeanExporter mbeanExporter(ObjectNamingStrategy namingStrategy, BeanFactory beanFactory) {
AnnotationMBeanExporter exporter = new AnnotationMBeanExporter();
exporter.setRegistrationPolicy(this.properties.getRegistrationPolicy());
exporter.setNamingStrategy(namingStrategy);
String serverBean = this.properties.getServer();
if (StringUtils.hasLength(serverBean)) {
exporter.setServer(beanFactory.getBean(serverBean, MBeanServer.class));
}
exporter.setEnsureUniqueRuntimeObjectNames(this.properties.isUniqueNames());
return exporter;
}
@Bean
@ConditionalOnMissingBean(value = ObjectNamingStrategy.class, search = SearchStrategy.CURRENT)
ParentAwareNamingStrategy objectNamingStrategy() {
ParentAwareNamingStrategy namingStrategy = new ParentAwareNamingStrategy(new AnnotationJmxAttributeSource());
String defaultDomain = this.properties.getDefaultDomain();
if (StringUtils.hasLength(defaultDomain)) {
namingStrategy.setDefaultDomain(defaultDomain);
}
namingStrategy.setEnsureUniqueRuntimeObjectNames(this.properties.isUniqueNames());
return namingStrategy;
}
@Bean
@ConditionalOnMissingBean
MBeanServer mbeanServer() {
MBeanServerFactoryBean factory = new MBeanServerFactoryBean();
factory.setLocateExistingServerIfPossible(true);
factory.afterPropertiesSet();
MBeanServer mBeanServer = factory.getObject();
Assert.state(mBeanServer != null, "'mBeanServer' must not be null");
return mBeanServer;
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free