`@Qualifier` позволяет сделать несколько реализаций одного и того же интерфейса.
Маркерный интерфейс - не всегда вариант. Например, если нужно несколько соединений с базами данных, то нужен интерфейс `DataSource` для всех. А наследоваться от его реализаций, чтобы добавить этот самый маркерный интерфейс - это даже не всегда возможно. Например, если DataSource реализуется где-то глубоко внутри пула соединений или драйвера JDBC.