TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #2495 2.08K
🤔 В чем разница между Spring аннотациями Component, Repository и Service?

Все три аннотации используются в Spring для создания бинов, но у каждой есть своё предназначение.

🚩`@Component` – базовая аннотация для бина

@Component помечает класс как Spring-бин (компонент).
Является универсальной аннотацией.
Можно применять к любым классам, которые должны управляться Spring-контейнером.
@Component
public class MyComponent {
public void doWork() {
System.out.println("Работа компонента");
}
}


🚩`@Service` – для бизнес-логики

@Service – это специализированный @Component, используемый для сервисных классов (логика приложения).
Упрощает понимание кода (показывает, что этот класс содержит бизнес-логику).
@Service
public class UserService {
public String getUser() {
return "Пользователь Иван";
}
}


🚩`@Repository` – для работы с базой данных

@Repository – это специализированный @Component для слоя доступа к данным (DAO, Repository).
Автоматически перехватывает SQL-исключения (PersistenceExceptionTranslationPostProcessor) и преобразует их в DataAccessException.
@Repository
public class UserRepository {
public String findUserById(int id) {
return "Пользователь с ID " + id;
}
}


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 9
More from @easy_java_ru
  1. Oct 3, 2026Post #2936
  2. Oct 2, 2026🤔 Что такое временная сложность? Временная сложность — это оценка времени выполнения алго…
  3. Oct 2, 2026🤔 Что такое синхронизация и зачем она нужна? Синхронизация — это механизм, который исполь…
  4. Oct 2, 2026Post #2933
  5. Oct 1, 2026🤔 Как подключить свою библиотеку в другом проекте? Для подключения своей библиотеки: - со…
  6. Oct 1, 2026Post #2931
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →