Skip to content

Commit 5d311d6

Browse files
committed
Polish
1 parent ec2064d commit 5d311d6

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcAutoConfiguration.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -315,16 +315,15 @@ public static ManagementServerPort get(Environment environment,
315315
Integer serverPort = getPortProperty(environment, "server.");
316316
if (serverPort == null && hasCustomBeanDefinition(beanFactory,
317317
ServerProperties.class, ServerPropertiesAutoConfiguration.class)) {
318-
ServerProperties bean = getBean(beanFactory, ServerProperties.class);
319-
serverPort = bean.getPort();
318+
serverPort = getTemporaryBean(beanFactory, ServerProperties.class)
319+
.getPort();
320320
}
321321
Integer managementPort = getPortProperty(environment, "management.");
322322
if (managementPort == null && hasCustomBeanDefinition(beanFactory,
323323
ManagementServerProperties.class,
324324
ManagementServerPropertiesAutoConfiguration.class)) {
325-
ManagementServerProperties bean = getBean(beanFactory,
326-
ManagementServerProperties.class);
327-
managementPort = bean.getPort();
325+
managementPort = getTemporaryBean(beanFactory,
326+
ManagementServerProperties.class).getPort();
328327
}
329328
if (managementPort != null && managementPort < 0) {
330329
return DISABLE;
@@ -335,7 +334,7 @@ public static ManagementServerPort get(Environment environment,
335334
: DIFFERENT);
336335
}
337336

338-
private static <T> T getBean(BeanFactory beanFactory, Class<T> type) {
337+
private static <T> T getTemporaryBean(BeanFactory beanFactory, Class<T> type) {
339338
if (!(beanFactory instanceof ConfigurableListableBeanFactory)) {
340339
return null;
341340
}
@@ -346,10 +345,16 @@ private static <T> T getBean(BeanFactory beanFactory, Class<T> type) {
346345
}
347346
// Use a temporary child bean factory to avoid instantiating the bean in the
348347
// parent (it won't be bound to the environment yet)
349-
BeanDefinition definition = listable.getBeanDefinition(names[0]);
350-
DefaultListableBeanFactory temp = new DefaultListableBeanFactory(listable);
351-
temp.registerBeanDefinition(type.getName(), definition);
352-
return temp.getBean(type);
348+
return createTemporaryBean(type, listable,
349+
listable.getBeanDefinition(names[0]));
350+
}
351+
352+
private static <T> T createTemporaryBean(Class<T> type,
353+
ConfigurableListableBeanFactory parent, BeanDefinition definition) {
354+
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(
355+
parent);
356+
beanFactory.registerBeanDefinition(type.getName(), definition);
357+
return beanFactory.getBean(type);
353358
}
354359

355360
private static Integer getPortProperty(Environment environment, String prefix) {

0 commit comments

Comments
 (0)