Junior — Middle
რა ნიშნავს Spring-ში სინგლტონ და პროტოტიპ მნიშვნელობების მქონე ბინებისთვის საზღვრების განსაზღვრა და როგორ ეს გავლენას ახდენს მათ ქცევაზე?
sobes.tech AI
პასუხი AI-სგან
Spring-ში, ხილვადობის (scope) სფერო განსაზღვრავს ბინის მაგალითის სიცოცხლის ხანგრძლივობას და ხილვადობას.
-
singleton — ეს არის დეფოლტული სფერო. ყოველ ჯერზე, როდესაც მოთხოვნა ამ scope-ის მქონე ბინზე მოდის, Spring აბრუნებს ერთსა და იმავე მაგალითს მთელი კონტეინერის სიცოცხლის განმავლობაში. ეს ნიშნავს, რომ ბინი ერთჯერ იქმნება და მეორედ გამოიყენება.
-
prototype — ყოველ მოთხოვნაზე, იქმნება ახალი მაგალითი. Spring არ მართავს ამ ბინების სიცოცხლის ციკლს შექმნის შემდეგ, ამიტომ ყოველი
getBeanზარი აბრუნებს ახალ ობიექტს.
ზეგავლენა ქცევაზე:
- Singleton ბინები ხარჯებს იწოვენ და უზრუნველყოფენ საერთო მდგომარეობას ყველა მომხმარებლისთვის.
- Prototype ბინები სასარგებლოა, როდესაც საჭიროა ახალი მაგალითი დამოუკიდებელი მდგომარეობით თითოეული გამოყენებისთვის.
მაგალითი:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// ყოველი `getBean` ზარი ქმნის ახალ ობიექტს
}
@Component
@Scope("singleton")
public class MySingletonBean {
// ერთი ობიექტი მთელი კონტეინერისთვის
}
ამიტომ, scope-ის არჩევანი გავლენას ახდენს იმაზე, როგორ და როდის იქმნება ობიექტები და რამდენ ხანს ცხოვრობენ პროგრამაში.