Czy w Controller mogę wstrzykiwać repository i serivices?

Czy w Controller mogę wstrzykiwać repository i serivices?
Lucekzz
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 4 lata
  • Postów:33
0

Czy w controller mogę wstrzyknąć repository jak używam również seervices ? Np. dla takiej metody z JpaRepository jak save() ? A nie używam jej w service? Czy powinnienem stworzyć w service metode np add która będzie implementowała save a pozniej to tej metody odwołać sie w controller ?

edytowany 1x, ostatnio: Lucekzz
Belka
  • Rejestracja:prawie 8 lat
  • Ostatnio:7 dni
  • Lokalizacja:PL
  • Postów:452
2

Z załozenia powinno się raczej unikać implementowania logiki w warstwie kontrolerów.

Black007
zgadzam się z przedmówcą, odziedziczyłem ostatnio projekt, gdzie warstwy się mieszają, w kontrolerach jest repozytorium, klasy util, które nie są klasami util, tylko serwisami.. No i zespól początkujących, którzy nie rozumieją czemu należy to oddzielić np. fasadą. Na szczęście chcą się uczyć.
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:UK
  • Postów:2235
2

Możesz, nikt Ci tego nie zabroni. Jest to dosyć często stosowana praktyka, moim zdaniem błędna. Osobiście jestem zwolennikiem "głupich" kontrolerów i oddelegowywania logiki biznesowej do warstwy... logiki biznesowej.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Jeśli nie ma tam żadnej logiki i to ma być tylko "przelotka" to bez sensu robić serwis i metodę w serwisie tylko żeby zrobić taką delegacje. Ale w takim razie po co w ogóle ci takie coś? CRUD? Mógłbyś równie dobrze wcisnąć tam Sping-Data-Rest i w ogóle nie pisać żadnego kodu :D


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Charles_Ray
Najlepiej jeszcze z deleteAll() wystawionym po Rescie -_^
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 5 godzin
  • Postów:1881
3

Pomyśl w kategoriach CQRS. Masz logikę - powinna być z dala od kontrolera, nie masz logiki (np. prosty odczyt, readmodel) - serwis jest niepotrzebny. Może być ciężko na code review przekonać „seniorów”, niektórym się to w głowie nie mieści :D


”Engineering is easy. People are hard.” Bill Coughran
SY
  • Rejestracja:około 15 lat
  • Ostatnio:ponad 4 lata
0

Służę z pomocą ;) Na swoim blogu opisałem metody wstrzykiwania zależności w Springu - https://javaleader.pl/2019/08/29/metody-wstrzykiwania-zaleznosci-w-springu/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.