Встречается на собеседованиях • сегодня
В чем разница между @Controller, @Service, @Component и @Repository
Все эти аннотации являются стереотипными (stereotype) и помечают классы как Spring-бины, но имеют разное семантическое назначение:
@Component- базовый стереотип, помечает любой класс как Spring-компонент@Controller- специализация для веб-слоя (MVC контроллеры)@Service- указывает на бизнес-логику сервисного слоя@Repository- маркирует DAO/репозитории, добавляет автоматическую трансляцию исключений в DataAccessException
Пример:
java
@Controller
public class UserController {
@Autowired
private UserService userService;
}
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}
@Repository
public class UserRepository {
// методы доступа к данным
}Разница в основном семантическая - помогает четко разделять слои приложения. Технически Spring обрабатывает их одинаково, но @Repository дополнительно включает обработку исключений JDBC.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы