Start here. This is the direct spoken answer to practice first.
Overview
A conditional bean definition is registered only when its declared runtime configuration facts match.
Boot provides conditions such as @ConditionalOnClass, @ConditionalOnMissingBean, and @ConditionalOnProperty. They allow configuration to activate only when a library is present, no user replacement exists, or a property has the expected value. Conditions are evaluated while the application context is being built, so they normally select the startup bean graph rather than switch behavior on every request. The condition evaluation report explains matches and non-matches.