Aplikacja rest w springu dlaczego interfejsy DAO i Service mają takie same metody ?

0

Mam pytanie odnośnie nazw pakietów pakietów i ich przeznaczenia odnosząc się do tego przykładu http://www.journaldev.com/3531/spring-mvc-hibernate-mysql-integration-crud-example-tutorial

  1. Czy nazwa pakietów Repozytorium i Services jest tym samym i można użyć albo jednego albo drugiego ?
  2. Dlaczego interfejsy DAO i Services mają takie same metody?
  3. Dlaczego Services ma wstrzykiwany interface DAO
  4. Dlaczego w Service i w Controller wstrzukujemu interfejs a nie klasę która implementowała interfejs np. ..DAOImpl
0
  1. Nie rozumiem pytania. Repozytorium i Serwis to są dwie zupełnie różne rzeczy.
  2. Bo autor tutoriala prezentuje CRUDa czyli aplikacje której jedynym zadaniem jest pisanie/czytanie z bazy danych. W efekcie nie ma tam żadnej "logiki" toteż nie ma w ogóle sensu mieć tam żadnego "serwisu". No ale autor się naczytał że serwisy być muszą to i zrobił, tylko że puste, bo delegujące wywołania do dao ;]
  3. Nie rozumiem pytania. Skoro chcesz tam w serwisie korzystać z DAO to je wstrzykujesz.
  4. Dzięki temu można łatwiej "podmienić" implementacje na coś innego co implementuje ten sam interfejs. Ułatwia to też pracę z AOP bo łatwiej tworzy się proxy oparte o interfejs niż oparte o klasę.

Przykład jest raczej głupi i bezwartościowy bo pokazuje co najwyzej jak spiąć Spring MVC z bazą danych, nic więcej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1