Middle
Springдеги Repository, Component, Controller жана Service белгилери арасындагы айырма эмнеде?
sobes.tech AI
AIден жооп
Бул белгилер Spring компоненттери үчүн стереотиптик белгилер болуп саналат:
@Component: Spring IoC контейнери тарабынан башкарылуучу ар кандай компонент үчүн негизги белгилер. Класс жалпы колдонмо компоненти деп эсептелет.@Repository: Маалымат операцияларын аткарган (DAO) класстар үчүн атайын белгилер. Spring кошумча мүмкүнчүлүктөрдү камсыз кылат, мисалы JDBC исключенияларын автоматтык түрдө Spring DataAccessExceptionга которуу.@Service: Бизнес логиканы камтыган класстар үчүн атайын белгилер. Класс бизнес логика деңгээлиндеги кызмат деп белгилейт.@Controller: Веб катмарынын контроллерлору катары колдонулган класстар үчүн атайын белгилер. Адатта, Spring MVCде кирүүчү веб суроолорду иштетүү үчүн колдонулат.
Бул бардык белгилер @Component үчүн мета-annotation болуп саналат, бул класстардын бири менен белгиленсе, Spring аны компонент катары карайт. Негизги айырма семантикада жана Spring ар бирине камсыз кыла турган атайын функцияларда жатат.
// `@Component` колдонуу мисалы
@Component
public class MyGenericComponent {
// жалпы функциялар
}
// `@Repository` колдонуу мисалы
@Repository
public class UserRepository {
// маалымат базасы операциялары
}
// `@Service` колдонуу мисалы
@Service
public class UserService {
// бизнес логика
}
// `@Controller` колдонуу мисалы
@Controller
public class UserController {
// веб суроолорду иштетүү
}