Встречается на 2% собеседований по Java
В чем разница между @Controller и @Repository в Spring
@Controller и @Repository — это стереотипные аннотации Spring, но они служат разным целям.
@Controller:
- Используется для веб-слоя (MVC).
- Обрабатывает HTTP-запросы и возвращает представление (View) или данные (REST).
- Часто используется с
@RequestMappingили@GetMapping/@PostMapping.
Пример:
java
@Controller
public class UserController {
@GetMapping("/users")
public String getUsers(Model model) {
model.addAttribute("users", userService.getAll());
return "users";
}
}@Repository:
- Обозначает слой доступа к данным (DAO).
- Автоматически перехватывает исключения (например, SQL) и преобразует их в Spring
DataAccessException. - Часто используется с JPA (
@Entity,CrudRepository).
Пример:
java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
}Ключевое отличие:
@Controller — для веб-запросов, @Repository — для работы с БД. Обе аннотации — частные случаи @Component, но с дополнительной семантикой.

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