Sobes.tech
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-ის არჩევანი გავლენას ახდენს იმაზე, როგორ და როდის იქმნება ობიექტები და რამდენ ხანს ცხოვრობენ პროგრამაში.