Sobes.tech
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 ანოტაციით).