Czy w Controller mogę wstrzykiwać repository i serivices?

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 ?

2

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

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.

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

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

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/

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