Встречается на собеседованиях • сегодня

Можно ли с помощью @Autowired задать обязательность зависимости

Да, можно. По умолчанию @Autowired помечает зависимость как обязательную (required=true). Если зависимость не найдена, будет выброшено NoSuchBeanDefinitionException.

Чтобы сделать зависимость необязательной, нужно явно указать @Autowired(required=false). В этом случае, если бин не найден, поле останется null.

Пример:

java
@Service
public class MyService {
    @Autowired // обязательная зависимость (по умолчанию)
    private SomeRepository repository;

    @Autowired(required = false) // необязательная зависимость
    private OptionalDependency optionalDep;
}

Начиная с Spring 4.3, для конструкторов @Autowired можно не указывать, если есть только один конструктор, и он будет считаться обязательным.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы