Sobes.tech
Junior — Middle

Обяснете концепцията за внедряване на зависимости в Spring и как се реализира

sobes.tech AI

Отговор от AI

Внедряването на зависимости (Dependency Injection, DI) в Spring е начин за управление на зависимостите на обектите, при който контейнерът Spring отговаря за създаването и свързването на обектите, а не самият обект създава или търси своите зависимости.

Основните начини за реализиране на DI в Spring:

  1. Чрез конструктора — зависимостите се предават чрез параметрите на конструктора.
  2. Чрез сетъри — зависимостите се задават чрез setter методи.
  3. Чрез полета с анотация @Autowired — Spring автоматично инжектира необходимите бинове.

Пример за инжектиране чрез анотация:

@Component
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

Тук Spring сам ще създаде екземпляр на UserRepository и ще го предаде на конструктора на UserService. Това улеснява смяната на реализации на зависимости, опростява тестването и увеличава модулността на кода.