Skip to content

Commit 4989c03

Browse files
committed
Stop extending BiConsumer in customizer interface
Remove the BiConsumer import and the extends BiConsumer<FeignClientSpecification,String> declaration from FeignClientSpecificationCustomizer. The default accept(...) method was also removed, leaving a single customize(FeignClientSpecification, String) method. This simplifies the interface by removing the functional interface inheritance while preserving the customization API.
1 parent f79084f commit 4989c03

2 files changed

Lines changed: 8 additions & 12 deletions

File tree

microsphere-spring-cloud-openfeign/src/main/java/io/microsphere/spring/cloud/openfeign/FeignClientSpecificationCustomizer.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,14 @@
1919

2020
import org.springframework.cloud.openfeign.FeignClientSpecification;
2121

22-
import java.util.function.BiConsumer;
23-
2422
/**
2523
* The Customizer of {@link FeignClientSpecification}
2624
*
2725
* @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
2826
* @see FeignClientSpecification
2927
* @since 1.0.0
3028
*/
31-
public interface FeignClientSpecificationCustomizer extends BiConsumer<FeignClientSpecification, String> {
29+
public interface FeignClientSpecificationCustomizer {
3230

3331
/**
3432
* Customizes {@link FeignClientSpecification} bean and bean name
@@ -37,9 +35,4 @@ public interface FeignClientSpecificationCustomizer extends BiConsumer<FeignClie
3735
* @param beanName the bean name of {@link FeignClientSpecification}
3836
*/
3937
void customize(FeignClientSpecification specification, String beanName);
40-
41-
@Override
42-
default void accept(FeignClientSpecification specification, String beanName) {
43-
customize(specification, beanName);
44-
}
4538
}

microsphere-spring-cloud-openfeign/src/main/java/io/microsphere/spring/cloud/openfeign/beans/factory/config/FeignClientSpecificationPostProcessor.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
import org.springframework.beans.BeansException;
66
import org.springframework.beans.factory.BeanFactory;
77
import org.springframework.beans.factory.BeanFactoryAware;
8-
import org.springframework.beans.factory.ObjectProvider;
98
import org.springframework.beans.factory.config.BeanPostProcessor;
109
import org.springframework.cloud.openfeign.FeignClientSpecification;
1110

11+
import java.util.List;
12+
13+
import static io.microsphere.spring.beans.BeanUtils.getSortedBeans;
14+
1215
/**
1316
* {@link BeanPostProcessor} for {@link FeignClientSpecification}
1417
*
@@ -20,15 +23,15 @@
2023
*/
2124
public class FeignClientSpecificationPostProcessor extends GenericBeanPostProcessorAdapter<FeignClientSpecification> implements BeanFactoryAware {
2225

23-
private ObjectProvider<FeignClientSpecificationCustomizer> customizerProvider;
26+
private List<FeignClientSpecificationCustomizer> customizers;
2427

2528
@Override
2629
protected void processAfterInitialization(FeignClientSpecification bean, String beanName) throws BeansException {
27-
customizerProvider.forEach(customizer -> customizer.customize(bean, beanName));
30+
customizers.forEach(customizer -> customizer.customize(bean, beanName));
2831
}
2932

3033
@Override
3134
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
32-
this.customizerProvider = beanFactory.getBeanProvider(FeignClientSpecificationCustomizer.class);
35+
this.customizers = getSortedBeans(beanFactory, FeignClientSpecificationCustomizer.class);
3336
}
3437
}

0 commit comments

Comments
 (0)