Java webservice ścieżka nauki

Java webservice ścieżka nauki
Szymon Grzesiak
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 2 lata
  • Postów:15
0

Witam. Otóż chciałbym kontynuować swoją przygodę z programowaniem w javie. Chciałbym stworzyć web-service wykorzystujący kod javy w ramach nauki. Można powiedzieć w jakimś tam stopniu mam ogarnięte podstawy i chciałbym po prostu iść dalej.
Serwerem będzie oczywiście Tomcat. Dalej chciałbym stworzyć bazę danych Mysql i połaczyć ją przy użyciu aplikacji z serwerem. (wykorzystanie workbencha będzie tutaj dobrym wyborem? pracuje pod win więc Postgre odpada) I teraz mam pytanie jaki tut obrać i we właściwej kolejności:
Java Platform: Working with Databases Using JDBC
Java Web Fundamentals zacząłem od tego, widze wykorzytanie Servletów i wydawać się by mogło dobry start pod EE.

RESTFul Services in Java using Jersey
Building JAX-WS Web Services with Apache CXF

Są to kursy z Pluralsight, które mam aktualnie wykupione i zastanawiam się na sensem ich wykorzystania w założonym projekcie. Z góry dzięki za jakieś nakierowanie bo nie powiem troszkę czuję się zmieszany widząc ogrom opcji i szukaniem "optymalnej" by się nie nudzić i i tez nie musieć co chwila czegoś szukać.
Z drugiej strony nie wiem czy aktualnie nie korzysta się z JAVY EE do tego typu rzeczy. Mam dostęp od Intellij IDEA Ultimate jako student.

xxxmateusz00xxx
  • Rejestracja:ponad 11 lat
  • Ostatnio:około rok
  • Postów:45
1

Najszybciej to chyba bedzie tak: https://spring.io/projects/spring-data-rest

Wspominal juz o tym koziolek tutaj: https://4programmers.net/Forum/1613556

edytowany 1x, ostatnio: xxxmateusz00xxx
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

pracuje pod win więc Postgre odpada

Bo? o_O

RESTFul Services in Java using Jersey
Building JAX-WS Web Services with Apache CXF

A chcesz RESTa czy chcesz SOAPa? Bo różnica jak między krzesłem i krzesłem elektrycznym.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Belka
  • Rejestracja:prawie 8 lat
  • Ostatnio:2 dni
  • Lokalizacja:PL
  • Postów:452
0

Spring Data REST? To jest dobre do wystawienia makietowego REST API, ale nie ma sensu się tym interesować na początku nauki.

OPie ogarniaj sobie Spring Boota, do tego zwykłe Spring Data. Tomcata masz embedded serwowanego w Spring Boocie. Do tego możesz pobawić się na froncie HTML+Thymeleaf albo jakims JSem

Zobacz pozostałe 2 komentarze
Shalom
Miałem na myśli Spring Data Rest, ale generalnie Spring Data to tez taka CRUDowa wydmuszka, ale JPA nie lepsze ;)
S9
@Belka: prawdę powiedziawszy zaczynam sądzisz że ORM zwłaszcza z dirty checking to zuooo
baant
Jooq masterrace
S9
JOOQ, JdbcTemplate ale JPA to jednak ssie pałe
Belka
Ja jeszcze entry level, dopiero dostałem się na juniora, Spring Data to na razie dla mnie coś wspaniałego, ale pewnie z biegiem czasu zacznę korzystać (może nawet całkiem zgrabnie) z innych pośredników do DB
Szymon Grzesiak
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 2 lata
  • Postów:15
0

Aa sorry nie wiem czemu myślałem że Postgre działa tylko pod macOS. Czyli reasumując najlepiej byłoby iść w Spring DATA REST. Ale jako wprowadzenie dobrze zastosować Spring Boota i Spring Data?

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Jeśli chodzi o Spring-Data-Rest to moim zdaniem nie warto. To są takie zabawki do postawienia CRUDa na szybko, ale poza tym średnio przydatne. Ani się z tego wiele nie nauczysz, bo napiszesz 3 linijki a potem Spring magicznie wyczaruje CRUDa, ani się to specjalnie do niczego nie przyda w przyszłości, bo poza jakimiś bieda-java-shopami po prostu sie takich rzeczy nie używa.
Spring Boot spoko, Spring Data jeśli musisz, ale generalnie też się odchodzi od takich rozwiązań, tak samo jak od JPA, bo w praktyce chcesz mieć bardziej "biznesowe" repozytoria, a nie DAO operujące na jednej tabeli.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Zobacz pozostałe 6 komentarzy
baant
to już raczej nie zależy od podejścia (jpa vs bardziej "surowe") tylko od tego co i jak chcesz przetestować. Jakaś bazka in memory niezależnie co wybierzesz
Shalom
@danek: a gdzie jest różnica w testowaniu tego w porównaniu do jakiegokolwiek innego modelu? Jakie znowu mocki? o_O Testowanie repozytoriów czy DAO mockami to idiotyzm przecież. Stawiasz bazę in memory / albo kręcisz bazę w jakimś dockerze i testujesz czy to faktycznie działa. Co ty byś chciał tu zrobić mockiem? Zamockować sobie połączenie z bazą i nagrać ze jak przyjdzie select ... to zwraca ci jakiśtam wynik? Taki test niczego nie sprawdzi. Jak SQL jest zły to test i tak zielony, a jak zmienisz SQLa w kodzie na inny to test czerwony mimo ze wszystko działa.
danek
przy prostym repozytorium prosta implementacja jest najszybsza. Nie używałem nigdy baz in memory na większą skale i nie wiem jak to się zachowuje przy np 100 testach (chodzi mi o czas wykonania). No ale to też znowu kwestia tego co testować, jak i po co. Dzięki ;)
Shalom
@danek test potrwa 2s zamiast 1s ;) z dockerem może kilka sek więcej zanim wystartuje. przy prostym repozytorium prosta implementacja jest najszybsza -> tylko że nie testujesz czy prawdziwy kod działa. Testujesz kod napisany pod testy, a nie kod który działa na produkcji, gdzie tu sens i logika? Klientowi potem powiesz ze na mockach mi wszystko działało, a u klienta się wypie bo zapytania do bazy są zrypane :D
danek
mam nawyk dość częstego odpalania testów więc te kilka sekund już boli :p ale też mam zazwyczaj dwa typy testów, te szybkie w pamięci i potem już na normalnej bazie (odpalane raz przed commitem).
Belka
  • Rejestracja:prawie 8 lat
  • Ostatnio:2 dni
  • Lokalizacja:PL
  • Postów:452
0

W sumie przy okazji zapytam - jak powinien wyglądać mechanizm wyciągania właściwości z kilku tabel z mapowaniem tego wszystkiego do jednego obiektu? Jak to robić najwygodniej i najwydajniej?

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

@Belka np. jakimś JDBCTemplate Springowym, wrzucasz query, podajesz mu RowMappera i sobie mapujesz na co chcesz :)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"

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.