Sobes.tech
Junior — Middle

Осигурява ли се създаването на същия екземпляр на компонента при използване на анотацията @Autowired в различни части на клас, маркиран с @Component?

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 се отнасят към един и същи екземпляр на MyRepository
    }
}

По този начин Spring управлява жизнения цикъл на компонентите и осигурява повторното използване на един и същи екземпляр, ако не е указано друго (например, с анотацията @Scope).