1355. Области видимости бинов в Spring
В Spring Framework существуют различные области видимости бинов, определяющие, как много экземпляров бина будет создано и как долго он будет жить. Некоторые из наиболее распространенных областей видимости бинов в Spring:
- Singleton - по умолчанию все бины в Spring являются синглтонами, то есть создается только один экземпляр бина для контейнера. Этот бин существует до тех пор, пока контейнер не будет уничтожен.
- Prototype - при каждом обращении к контейнеру создается новый экземпляр бина. Этот тип области видимости особенно полезен в случаях, когда бину необходимо создаваться и уничтожаться каждый раз при обращении к нему.
- Request - бин, созданный в области запроса, существует только в течение одного HTTP-запроса и уничтожается после его завершения.
- Session - бин, созданный в области сессии, существует в течение жизни HTTP-сессии и уничтожается после ее завершения.
- Global session - аналогично с областью видимости сессии, но в контексте портлетов.
- Application - бин создается один раз при запуске приложения и существует до его завершения.
Как правило, каждый бин может иметь только одну область видимости, но можно использовать прокси-объекты, чтобы создавать бины, которые имеют область видимости, отличную от области видимости оригинального бина.