Spring architektura projektu

0

Pytanie mam odnośnie springa mvc, załóżmy, że mam klasę Dodawanie, która ma jedną metodę dodaj(int x, int y) i moje pytanie brzmi jak powinno się do niej dobrać.
Myślę tak: mamy sobie formularz na stronie z polami do wpisywania tych pól (x, y) po "submit" dane lecą do kontrolera. i tu właśnie nie wiem jak zrobić.
Oczywiście wiem, że mogę w kontrolerze zrobić Dodawanie d = new Dodawanie(); d.dodaj(x, y); ale nie jest to ładne wyjście bo nie od tego jest kontroler.
czym mam stworzyć jakiś service (tak jak w przypadku komunikacji z obiektami DAO) czy może inaczej się to rozwiązuje.

1

Do takiego przypadku wypadało by zrobić z tej klasy serwis i pobrać go tam gdzie chcesz poprzez jakiś kontener lub wstrzyknięcie zależności, nie znam springa ale pewnie daje takie możliwości :)

0

Serwis wstrzyknięty do kontrolra.

0

Generalnie pełna architektura warstwowa wygląda tak:

-----------------------------------------------------------|---------|
                 JavaScript w przeglądarce                 |         |
-----------------------------------------------------------|         |
Controlery generujące HTML | Controlery do API (HTTP/JSON) |         |
-----------------------------------------------------------|  model  |
                                   Usługi                  | danych  |
                     --------------------------------------|    i    |
                    |            inne komponenty           |   DTO   |
-----------------------------------------------------------|         |
                               Repozytoria                 |         |
-----------------------------------------------------------|---------|

Możliwe uproszczenia:

  • API możesz wystawić bezpośrednio z usług bez osobnych kontrolerów jeżeli serializacje i deserializacje ogarniesz adnotacjami, nie masz jakiś większych wymagań projektowych odnośnie integracji i nie będziesz w nich wykorzystywał bezpośrednio obiektów związanych z servletami,
  • oddzielne DAO są według mnie zbędne jeżeli korzystasz z czegoś tak grubego jak JPA; Spring Repositories - trochę polepszają pracę z JPA ale czasem nie pasują do niektórych projektów

PS. Niektóry wypuszczają po za usługi tylko DTO ale wtedy rośnie Ci podwójna hierarchia obiektów - jedna odzwierciedlająca model danych w DTO w skali niemal 1:1

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