@Service
является специализацией @Component
. Это аннотация, которая сообщает Spring, чтобы включить этот класс в виде Bean-компонента в контекст Spring. Вы можете думать об этом как о том, что Spring говорит, что взять и вставить в контекст во время сканирования компонента.
@Autowired
- это аннотация Spring для вставки чего-либо из контекста. Вы можете думать об этом как о том, что вы хотите получить от Spring. В общем, вам нужно использовать эту аннотацию для любого поля, конструктора или установщика, которые вы хотите, чтобы Spring вызывал для предоставления вам объекта, которым он управляет для данного типа.
Чтобы ответить на ваш вопрос, да,вам нужно и объявить, что вы хотите поместить в контекст, и когда вы хотите что-то из контекста.
Кроме того, ваши первые три аннотации можно заменить на @SpringBootApplication
. Эта аннотация является метааннотацией, то есть это аннотация, которая сокращенно включает серию других аннотаций. Документально, среди прочего, включены все три ваши аннотации.