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