Skip to content

Lambda-based consumption of an ObjectProvider's object when available [SPR-16001] #20550

@spring-projects-issues

Description

@spring-projects-issues

Andy Wilkinson opened SPR-16001 and commented

In a similar vein to #19474, I just wrote the following:

@Bean
public HttpHandler httpHandler(
		ObjectProvider<WebSessionManager> webSessionManagerProvider) {
	WebHttpHandlerBuilder builder = WebHttpHandlerBuilder
			.applicationContext(this.applicationContext);
	WebSessionManager webSessionManager = webSessionManagerProvider
			.getIfAvailable();
	if (webSessionManager != null) {
		builder.sessionManager(webSessionManager);
	}
	return builder.build();
}

I'd prefer to avoid the local variable and null check. Something like this:

@Bean
public HttpHandler httpHandler(
		ObjectProvider<WebSessionManager> webSessionManagerProvider) {
	WebHttpHandlerBuilder builder = WebHttpHandlerBuilder
			.applicationContext(this.applicationContext);
	webSessionManagerProvider.consumeIfAvailable(
			(webSessionManager) -> builder.sessionManager(webSessionManager));
	return builder.build();
}

Affects: 5.0 RC4

Issue Links:

Referenced from: commits e927cae

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions