Add proxyTargetBeans = false

This commit is contained in:
Dave Syer
2019-07-10 12:57:57 +01:00
committed by Oleg Zhurakousky
parent 70d46f8b9f
commit 521c6d3397
7 changed files with 24 additions and 29 deletions

View File

@@ -24,7 +24,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
* @author Mark Fisher
*/
// @checkstyle:off
@SpringBootConfiguration
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
public class RestApplication {

View File

@@ -41,7 +41,7 @@ import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandl
* @author Mark Fisher
* @author Oleg Zhurakousky
*/
@Configuration
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Flux.class, AsyncHandlerMethodReturnValueHandler.class })
@ConditionalOnWebApplication(type = Type.REACTIVE)
@Import({ FunctionController.class, RequestProcessor.class })
@@ -49,8 +49,7 @@ import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandl
public class ReactorAutoConfiguration {
@Bean
public FunctionHandlerMapping functionHandlerMapping(FunctionCatalog catalog,
FunctionController controller) {
public FunctionHandlerMapping functionHandlerMapping(FunctionCatalog catalog, FunctionController controller) {
return new FunctionHandlerMapping(catalog, controller);
}

View File

@@ -41,7 +41,7 @@ import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandl
* @author Mark Fisher
* @author Oleg Zhurakousky
*/
@Configuration
@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Flux.class, AsyncHandlerMethodReturnValueHandler.class })
@Import({ FunctionController.class, RequestProcessor.class })
@@ -49,8 +49,7 @@ import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandl
public class ReactorAutoConfiguration {
@Bean
public FunctionHandlerMapping functionHandlerMapping(FunctionCatalog catalog,
FunctionController controller) {
public FunctionHandlerMapping functionHandlerMapping(FunctionCatalog catalog, FunctionController controller) {
return new FunctionHandlerMapping(catalog, controller);
}

View File

@@ -41,7 +41,7 @@ import org.springframework.web.reactive.function.client.WebClient;
* @author Dave Syer
*
*/
@Configuration
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(WebClient.class)
@Conditional(SourceActiveCondition.class)
@EnableConfigurationProperties(ExporterProperties.class)
@@ -56,21 +56,17 @@ public class FunctionExporterAutoConfiguration {
@Bean
@ConditionalOnProperty(prefix = "spring.cloud.function.web.export.sink", name = "url")
public SupplierExporter sourceForwarder(RequestBuilder requestBuilder,
DestinationResolver destinationResolver, FunctionCatalog catalog,
WebClient.Builder builder) {
return new SupplierExporter(requestBuilder, destinationResolver, catalog,
builder.build(), this.props);
public SupplierExporter sourceForwarder(RequestBuilder requestBuilder, DestinationResolver destinationResolver,
FunctionCatalog catalog, WebClient.Builder builder) {
return new SupplierExporter(requestBuilder, destinationResolver, catalog, builder.build(), this.props);
}
@Bean
@ConditionalOnProperty(prefix = "spring.cloud.function.web.export.source", name = "url")
public FunctionRegistration<Supplier<Flux<?>>> origin(WebClient.Builder builder) {
HttpSupplier supplier = new HttpSupplier(builder.build(), this.props);
FunctionRegistration<Supplier<Flux<?>>> registration = new FunctionRegistration<>(
supplier);
FunctionType type = FunctionType.supplier(this.props.getSource().getType())
.wrap(Flux.class);
FunctionRegistration<Supplier<Flux<?>>> registration = new FunctionRegistration<>(supplier);
FunctionType type = FunctionType.supplier(this.props.getSource().getType()).wrap(Flux.class);
if (this.props.getSource().isIncludeHeaders()) {
type = type.message();
}

View File

@@ -46,8 +46,11 @@ class FunctionExporterInitializer implements ApplicationContextInitializer<Gener
}
private void registerWebClient(GenericApplicationContext context) {
if (context.getBeanFactory().getBeanNamesForType(WebClient.Builder.class, false, false).length == 0) {
context.registerBean(WebClient.Builder.class, () -> WebClient.builder());
if (ClassUtils.isPresent("org.springframework.web.reactive.function.client.WebClient",
getClass().getClassLoader())) {
if (context.getBeanFactory().getBeanNamesForType(WebClient.Builder.class, false, false).length == 0) {
context.registerBean(WebClient.Builder.class, () -> WebClient.builder());
}
}
}