Есть три способа добавления бинов в контекст Spring: с помощью аннотации @Bean и стереотипных аннотаций, а также программно.
• Посредством аннотации @Bean в контекст Spring в качестве бина можно добавить экземпляр (или даже несколько экземпляров) объекта любого типа. Такой подход является более гибким, чем стереотипные аннотации. Однако он требует написания большего кода, поскольку необходимо создавать в классе конфигурации отдельный метод для каждого независимого экземпляра, включаемого в контекст.
• С помощью стереотипных аннотаций можно создавать бины только для классов, определенных в приложении. (Для этого применяются специфические аннотации, такие как @Component.) При подобном подходе требуется писать меньше кода, благодаря чему конфигурацию легче читать. Данный способ предпочтительнее, чем @Bean, для тех классов, которые вы создали сами и можете снабдить аннотациями.
• Метод registerBean() позволяет реализовать собственную логику добавления бинов в контекст Spring. Напомню: этот метод можно использовать только в Spring 5 или в более поздних версиях
Spring быстро
·
Лауренциу Спилкэ