Разница между аннотацией @ConditionalOnClass и @ConditionalOnMissingBean заключается в том, что они проверяют наличие или отсутствие определённых условий для создания бина 124.
@ConditionalOnClass создаёт бин, только если указанный класс присутствует в пути к классам. 13 Это полезно для создания бинов, которые зависят от наличия определённой библиотеки или класса. 1
@ConditionalOnMissingBean создаёт бин, только если указанный тип или имя бина ещё не определены в контексте приложения. 12 Это может быть полезно для предоставления определений бина по умолчанию, которые могут быть переопределены пользовательскими бинами в контексте приложения. 1
Таким образом, основное различие в том, что @ConditionalOnClass проверяет наличие конкретного класса, а @ConditionalOnMissingBean — отсутствие другого бина определённого типа или названия. 24