Вопрос проверяет базовую грамотность в Spring Boot: умеет ли кандидат собирать приложение из слоёв и понимать, что именно делает каждая аннотация.
Spring Boot предоставляет набор аннотаций, которые упрощают конфигурацию приложения и работу с компонентами. Основные из них отвечают за запуск приложения, объявление бинов и обработку HTTP-запросов. Они позволяют отказаться от ручной настройки и XML-конфигураций. Знание этих аннотаций показывает, что разработчик понимает, как Spring собирает и запускает приложение.
Spring Boot строится вокруг аннотаций, которые управляют жизненным циклом приложения и его компонентами. Они используются практически в каждом backend-проекте.
Определение:@SpringBootApplication — это составная аннотация, которая включает в себя сразу несколько важных механизмов Spring.
Она объединяет:
@Configuration — объявляет класс источником конфигурации
@EnableAutoConfiguration — включает автоконфигурацию Spring Boot
@ComponentScan — включает сканирование компонентов
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring управляет объектами (бинами) через контейнер, и для этого используются следующие аннотации:
@Component — базовая аннотация для любого Spring-бина
@Service — логика приложения (service-слой)
@Repository — слой работы с базой данных
@Controller / @RestController — обработка HTTP-запросов
@Service
public class UserService {
// бизнес-логика
}
Для связывания компонентов между собой используются:
@Autowired — автоматическое внедрение зависимости
@Qualifier — уточнение, какой бин использовать
@Value — внедрение значений из конфигурации
@Autowired
private UserService userService;
Основные аннотации Spring Boot позволяют быстро собрать backend-приложение без ручной конфигурации. Их используют всегда, поэтому незнание этих аннотаций — серьёзный минус на собеседовании.