Middle
382
რა არის Spring Scope?
პასუხი AI-სგან
sobes.tech AI
Spring-ში Scope განსაზღვრავს ბინის სიცოცხლის ციკლს და ხილვადობის სფეროს. იგი აკონტროლებს, რამდენი ეგზემპლარი შეიქმნება ბინიდან და როგორ იქნება მათზე წვდომა.
ძირითადი Scope ტიპები:
singleton: ერთ ეგზემპლარად ბინი შეიქმნება პროგრამის კონტექსტში. ეს არის ნაგულისხმევი Scope.prototype: ყოველი მოთხოვნისას ახალი ეგზემპლარი შეიქმნება.request: თითო HTTP მოთხოვნისთვის შეიქმნება ერთი ეგზემპლარი. მხოლოდ ვებ-აპლიკაციებში.session: თითო HTTP სესიისთვის შეიქმნება ერთი ეგზემპლარი. მხოლოდ ვებ-აპლიკაციებში.application: მთელიServletContext-ის სიცოცხლის განმავლობაში შეიქმნება ერთი ეგზემპლარი. მხოლოდ ვებ-აპლიკაციებში.
მაგალითი ბინის გამოყოფის:
@Component
@Scope("prototype") // Prototype scope-ის მითითება
public class MyPrototypeBean {
// ...
}
ან XML კონფიგურაციაში:
<bean id="myPrototypeBeanდაწყება" class="com.example.MyPrototypeBean" scope="prototype"/>
შერჩევა შესაბამისი Scope-ის, დამოკიდებულია საჭირო ქცევასა და მდგომარეობაზე. Singleton-ი შესაფერისია stateless ბინებისთვის, ხოლო prototype — stateful ან როდესაც საჭიროა ეგზემპლარების იზოლაცია. Request, session და application გამოიყენება ვებ-კონტექსტებში, ბინების სიცოცხლის ციკლის მართვისთვის მოთხოვნების, სესიის ან მთელი ვებ-აპლიკაციის შესაბამისად.