Junior — Middle
თუ @Component-ის ნიშნით აღნიშნული კლასის სხვადასხვა ნაწილში @Autowired ანოტაციის გამოყენებისას, იგივე კომპონენტის ნიმუშის შექმნა უზრუნველყოფილია?
sobes.tech AI
პასუხი AI-სგან
დიახ, როდესაც იყენებთ @Autowired ანოტაციას Spring Framework-ში დამოკიდებულებების ინექციისთვის @Component-ით მონიშნულ კლასში, დეფოლტად ქმნის ერთ ნიმუშს კომპონენტის (Singleton სქოპი). ეს ნიშნავს, რომ კლასის სხვადასხვა ადგილას, სადაც იგივე კომპონენტი ინექცირებულია @Autowired-ის საშუალებით, გამოიყენება ერთი და იგივე ნიმუში.
მაგალითად:
@Component
public class MyService {
@Autowired
private MyRepository repo1;
@Autowired
private MyRepository repo2;
public void doSomething() {
// repo1 და repo2 referენცირებენ ერთსა და იმავე MyRepository ნიმუშს
}
}
ამ გზით, Spring მართავს კომპონენტების ციკლს და უზრუნველყოფს ერთნაირი ნიმუშის განმეორებით გამოყენებას, თუ სხვა მითითება არ არის გაკეთებული (მაგალითად, @Scope ანოტაციით).