Sobes.tech
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 {
    // веб суроолорду иштетүү
}