mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Polish "Improve failure analysis with a single bean cycle"
See gh-26292
This commit is contained in:
parent
044c902a8c
commit
a6e59b357f
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2021 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -70,11 +70,12 @@ class BeanCurrentlyInCreationFailureAnalyzer extends AbstractFailureAnalyzer<Bea
|
|||||||
message.append(
|
message.append(
|
||||||
String.format("The dependencies of some of the beans in the application context form a cycle:%n%n"));
|
String.format("The dependencies of some of the beans in the application context form a cycle:%n%n"));
|
||||||
List<BeanInCycle> beansInCycle = dependencyCycle.getBeansInCycle();
|
List<BeanInCycle> beansInCycle = dependencyCycle.getBeansInCycle();
|
||||||
|
boolean singleBean = beansInCycle.size() == 1;
|
||||||
int cycleStart = dependencyCycle.getCycleStart();
|
int cycleStart = dependencyCycle.getCycleStart();
|
||||||
for (int i = 0; i < beansInCycle.size(); i++) {
|
for (int i = 0; i < beansInCycle.size(); i++) {
|
||||||
BeanInCycle beanInCycle = beansInCycle.get(i);
|
BeanInCycle beanInCycle = beansInCycle.get(i);
|
||||||
if (i == cycleStart) {
|
if (i == cycleStart) {
|
||||||
message.append(String.format((beansInCycle.size() == 1) ? "┌──->──┐%n" : "┌─────┐%n"));
|
message.append(String.format(singleBean ? "┌──->──┐%n" : "┌─────┐%n"));
|
||||||
}
|
}
|
||||||
else if (i > 0) {
|
else if (i > 0) {
|
||||||
String leftSide = (i < cycleStart) ? " " : "↑";
|
String leftSide = (i < cycleStart) ? " " : "↑";
|
||||||
@ -83,7 +84,7 @@ class BeanCurrentlyInCreationFailureAnalyzer extends AbstractFailureAnalyzer<Bea
|
|||||||
String leftSide = (i < cycleStart) ? " " : "|";
|
String leftSide = (i < cycleStart) ? " " : "|";
|
||||||
message.append(String.format("%s %s%n", leftSide, beanInCycle));
|
message.append(String.format("%s %s%n", leftSide, beanInCycle));
|
||||||
}
|
}
|
||||||
message.append(String.format((beansInCycle.size() == 1) ? "└──<-──┘%n" : "└─────┘%n"));
|
message.append(String.format(singleBean ? "└──<-──┘%n" : "└─────┘%n"));
|
||||||
return message.toString();
|
return message.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2021 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -150,7 +150,6 @@ class BeanCurrentlyInCreationFailureAnalyzerTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@org.springframework.context.annotation.Configuration(proxyBeanMethods = false)
|
@org.springframework.context.annotation.Configuration(proxyBeanMethods = false)
|
||||||
@SuppressWarnings("unused")
|
|
||||||
static class CyclicBeanMethodsConfiguration {
|
static class CyclicBeanMethodsConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ -181,7 +180,6 @@ class BeanCurrentlyInCreationFailureAnalyzerTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
@SuppressWarnings("unused")
|
|
||||||
static class CycleReferencedViaOtherBeansConfiguration {
|
static class CycleReferencedViaOtherBeansConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ -246,7 +244,6 @@ class BeanCurrentlyInCreationFailureAnalyzerTests {
|
|||||||
@org.springframework.context.annotation.Configuration(proxyBeanMethods = false)
|
@org.springframework.context.annotation.Configuration(proxyBeanMethods = false)
|
||||||
static class BeanThreeConfiguration {
|
static class BeanThreeConfiguration {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
@Bean
|
@Bean
|
||||||
BeanThree three(BeanOne one) {
|
BeanThree three(BeanOne one) {
|
||||||
return new BeanThree();
|
return new BeanThree();
|
||||||
@ -259,7 +256,6 @@ class BeanCurrentlyInCreationFailureAnalyzerTests {
|
|||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
static class SelfReferenceBeanConfiguration {
|
static class SelfReferenceBeanConfiguration {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
@Bean
|
@Bean
|
||||||
SelfReferenceBean bean(SelfReferenceBean bean) {
|
SelfReferenceBean bean(SelfReferenceBean bean) {
|
||||||
return new SelfReferenceBean();
|
return new SelfReferenceBean();
|
||||||
|
Loading…
Reference in New Issue
Block a user