Spring Beans
Bean — обычный объект под управлением Spring
Слово bean звучит как специальный тип объекта, но отдельного класса Bean
в Spring нет. Bean — это обычный Java-объект, который создан или зарегистрирован в контейнере
и жизненным циклом которого управляет Spring.
@Service
class PriceService {
int calculate(int basePrice) {
return basePrice;
}
}
Если Spring обнаружит этот класс и зарегистрирует его в контексте,
экземпляр PriceService станет bean.
Если тот же класс создать вручную через new PriceService(),
получившийся объект сам по себе bean не станет.
Почему это различие важно
Контейнер знает о своих beans: может передавать им зависимости, применять к ним инфраструктурную обработку и учитывать их при сборке других объектов. У объекта, созданного вручную вне контейнера, такой связи со Spring нет.
У bean есть тип, имя и набор метаданных, по которым контейнер понимает, как его создавать и использовать. Обычно прикладному коду важнее всего тип: именно по нему Spring часто подбирает подходящую зависимость.