diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/spring-boot-features.adoc index abcefccbe6c0..d2ce6d4c59f6 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/spring-boot-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/spring-boot-features.adoc @@ -8348,6 +8348,10 @@ For this reason, we recommend using only `@ConditionalOnBean` and `@ConditionalO NOTE: `@ConditionalOnBean` and `@ConditionalOnMissingBean` do not prevent `@Configuration` classes from being created. The only difference between using these conditions at the class level and marking each contained `@Bean` method with the annotation is that the former prevents registration of the `@Configuration` class as a bean if the condition does not match. +TIP: When declaring a `@Bean` method, provide as much type information as possible in the method's return type. +For example, if your bean's concrete class implements an interface the bean method's return type should be the concrete class and not the interface. +Providing as much type information as possible in `@Bean` methods is particularly important when using bean conditions as their evaluation can only rely upon to type information that's available in the method signature. + [[boot-features-property-conditions]]