Spring (и другие ioc-контейнеры) предлагают различные области применения.Одна из областей действия - singleton - т. Е. Контейнер создает объект только один раз и дает / вводит только один экземпляр.Синглтон - это область действия по умолчанию, поэтому большинство bean-компонентов действительно являются синглетонами с точки зрения контейнера, т. Е. У них есть только один экземпляр.
Однако существуют и другие области действия, например prototype
илиrequest
и session
.
В , управляющем компонентом, контейнер выполняет следующие действия:
- вызывает
@PostConstruct
и@PreDestroy
методы (или методы init и destroy, настроенные любыми доступными средствами) - внедряет все их определенные зависимости (= устанавливает другие bean-компоненты, существующие в контейнере, в поля этого bean-компонента)
- создает аспекты AOP вокруг методов bean
Примечание: вы можете создавать экземпляры более одного объекта класса, который определен как одноэлементный компонент.Контейнер создает объект только один раз, но ваш код не ограничивается его созданием несколько раз.