Skip to content

Commit a7b3265

Browse files
committed
Fix resolving default beans. Add documentation.
1 parent 125ba93 commit a7b3265

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/AbstractInterfaceClientsImportRegistrar.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,20 @@
4747
import org.springframework.util.ObjectUtils;
4848

4949
/**
50+
* Registers bean definitions for {@code HttpClient}
51+
* and {@code RSocketClient}-annotated Interface Clients
52+
* in order to automatically instantiate client beans based on those interfaces.
53+
*
5054
* @author Josh Long
5155
* @author Olga Maciaszek-Sharma
56+
* @since 3.4.1
5257
*/
5358
// TODO: Handle AOT
5459
public abstract class AbstractInterfaceClientsImportRegistrar
5560
implements ImportBeanDefinitionRegistrar, EnvironmentAware, ResourceLoaderAware {
5661

62+
public static final String DEFAULT_INTERFACE_CLIENTS_ID = "interface-clients";
63+
5764
private static final String INTERFACE_CLIENT_SUFFIX = "InterfaceClient";
5865

5966
private static final String BEAN_NAME_ATTRIBUTE_NAME = "beanName";

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/QualifiedBeanProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,15 @@
2727
import org.springframework.beans.factory.annotation.Qualifier;
2828
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
2929

30+
import static org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar.DEFAULT_INTERFACE_CLIENTS_ID;
31+
3032
/**
33+
* Utility class containing methods that allow searching for beans
34+
* with a specific qualifier, falling back to a default qualifier.
35+
*
3136
* @author Josh Long
3237
* @author Olga Maciaszek-Sharma
38+
* @since 3.4.1
3339
*/
3440
public final class QualifiedBeanProvider {
3541

@@ -44,7 +50,7 @@ public static <T> T qualifiedBean(ConfigurableListableBeanFactory beanFactory, C
4450
if (logger.isDebugEnabled()) {
4551
logger.debug("No qualified bean of type " + type + " found for " + clientId);
4652
}
47-
Map<String, T> matchingDefaultBeans = getQualifiedBeansOfType(beanFactory, type, clientId);
53+
Map<String, T> matchingDefaultBeans = getQualifiedBeansOfType(beanFactory, type, DEFAULT_INTERFACE_CLIENTS_ID);
4854
if (matchingDefaultBeans.size() > 1) {
4955
throw new NoUniqueBeanDefinitionException(type, matchingDefaultBeans.keySet());
5056
}

0 commit comments

Comments
 (0)