Java webservice ścieżka nauki

Odpowiedz Nowy wątek
2019-08-26 15:00
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.

Pozostało 580 znaków

2019-08-26 15:01
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, 2019-08-26 15:03

Pozostało 580 znaków

2019-08-26 15:50
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.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2019-08-26 15:51
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

Pokaż pozostałe 2 komentarze
Miałem na myśli Spring Data Rest, ale generalnie Spring Data to tez taka CRUDowa wydmuszka, ale JPA nie lepsze ;) - Shalom 2019-08-26 17:09
@Belka: prawdę powiedziawszy zaczynam sądzisz że ORM zwłaszcza z dirty checking to zuooo - scibi92 2019-08-26 17:13
Jooq masterrace - baant 2019-08-26 17:15
JOOQ, JdbcTemplate ale JPA to jednak ssie pałe - scibi92 2019-08-26 17:27
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 - Belka 2019-08-26 17:30

Pozostało 580 znaków

2019-08-26 23:32
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?

Pozostało 580 znaków

2019-08-27 01:04
0

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.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Pokaż pozostałe 6 komentarzy
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 - baant 2019-08-27 10:48
@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. - Shalom 2019-08-27 11:00
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 ;) - danek 2019-08-27 11:03
@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 - Shalom 2019-08-27 11:13
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). - danek 2019-08-27 11:28

Pozostało 580 znaków

2019-08-27 10:28
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?

Pozostało 580 znaków

2019-08-27 11:13
3

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


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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