Ответ
Spring Bean — это объект, жизненным циклом которого управляет контейнер Spring IoC (Inversion of Control). Бин создается, настраивается и ассемблируется на основе метаданных конфигурации (XML, аннотации, Java-код).
Ключевые характеристики:
- Управление контейнером: Spring создает бины, внедряет зависимости (DI) и управляет их жизненным циклом.
- Scope (область видимости): Определяет время жизни и количество экземпляров бина.
singleton(по умолчанию) — один экземпляр на контейнер.prototype— новый экземпляр при каждом запросе.request,session,application(для веб-приложений).
- Конфигурация: Может быть объявлен несколькими способами.
Примеры объявления бина:
1. Через аннотацию @Component (и ее специализации @Service, @Repository):
@Service // Spring обнаружит и создаст бин этого класса
public class UserService {
// логика сервиса
}
2. Через Java-конфигурацию (@Configuration + @Bean):
@Configuration
public class AppConfig {
@Bean // Метод возвращает объект, который становится бином
public DataSource dataSource() {
return new DriverManagerDataSource(
"jdbc:h2:mem:testdb", "sa", "");
}
}