Cześć. Tworzę aplikację serwerową (Java, Spring Boot) razem z klientem webowym (ReactJS). Będzie tam odczytywana między innymi temperatura z urządzeń dla konkretnego użytkownika. Aktualnie jeden z serwisów zbiera wszystkie pomiary i przy uzyciu kafka-stream patrzy czy został przekroczony próg i jeśli tak to zapisuje alarm do osobnego topicu (w tym topicu jest zawarty id usera). Chciałbym teraz zrobić jakąś komunikację z klientem, aby na bieżąco informować usera o alercie (wolałbym uniknąć okresowego
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cycun: imo najłatwiej byłoby to zrobić na websocketach, autentykujesz się na początku z jwt i śmiga. kafka może roibć jako broker dla stompa? jeśli tak to nawet nie musisz niczego infrastrukturalnie dodawać
  • Odpowiedz
@oslet: makaron dlatego, że jak się wysypało to były próby zidentyfikowania problemu.
To nie kwestia adnotacji RequestMapping bo metody mają przypisane endpointy. Z resztą sprawdziłem, by się upewnić i dodałem RequestMapping ale dalej to samo.
  • Odpowiedz
#programowanie #java #spring
Mam klasy A i B extends A. Chcę zrobić formularz springowy, który po submicie będzie przekazywał wartości do wpisania do obiektów A lub B, w zależności od tego, co chce użytkownik. Jak zrobić metody get/post kontrolera, który w zależności od okoliczności będzie umieszczał otrzymane parametry w typie A lub B? Jaki to typ, będzie wiadomo dopiero po otrzymaniu wpisanych danych na podstawie obecności
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Blackhorn: Różne struktury danych to zasadniczo różne endpointy. Zmiana sposobu obsługi może leżeć w meta-danych (z nagłówków http) jako precondition, ale tu potrzebny framework, który się nie boi że ktoś o polimorfizm zapyta.

Kolejny problem jest taki, że struktury danych nie powinny się rozszerzać przez dziedziczenie, bo dziedziczenie nie jest od tego (mimo, że tak uczą składni obiektów) - albo są to dwie struktury z różnych kontekstów z podobnymi polami
  • Odpowiedz
Ktoś wie jak w #spring #java dostać się do każdego elementu typu "features"?
https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&maxradiuskm=2000.0&latitude=30.21&longitude=12.9
Próbowałem z użyciem Jacksona oraz RestTemplate i bez skutku

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of [Ljava.lang.Object; out of >START_OBJECT token

at [Source: (PushbackInputStream); line: 1, column: 1]
borrow - Ktoś wie jak w #spring #java dostać się do każdego elementu typu "features"?...

źródło: comment_JQJimzUMThCWIusqJSnIcypADbE7cHP7.jpg

Pobierz
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#java #spring #mongodb

Normalnie do tworzenia aplikacji używam Javy, Springa, Spring Data, relacyjnych baz danych (bo to wszystko znam).

Teraz jednak chcę strzelać do pewnego API (wiele różnych strzałów), które zwraca mi dane (JSON-y nawet po kilka MB), wrzucać je do bazy, żeby potem to przetwarzać (zrobić jakieś zliczenia, agregacje itd).

Pomyślałem,
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mk321: przede wszystkim dlaczego w ogole spring? Ma to działać gdzieś webowo? To jeszcze tego nie potrzebujesz. Jesli chcesz coś lekkiego do endpointów to możesz użyć jakiejś lekkiej biblioteki (jak ratpack czy javalin). Jeśli chcesz mongo to udostępnia driver do javy, mający nawet całkiem dużo metod napisanych już za Ciebie.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 2
#programowanie #java #spring #springboot #maven

Jeśli robicie małą aplikację w Spring Boocie to po prostu uruchamiacie ją jako JAR.

Ale co jak do tej aplikacji ma dojść jakiś mały frontend (np. formularz, który będzie strzelał do tego backendu i jakaś pobierana lista)?

Kiedyś
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ale ja nie potrzebuję oddzielnej aplikacji (dodatkowo problem dla adminów, bo się komplikują wdrożenia)


@mk321: może czas zmienić adminów, jeśli ogarnięcie frontu i backendu osobno to problem?
  • Odpowiedz
@mk321: jak na moje to wystarczy wrzucic fronty do katalogu static w resources i beda serwowane przez serwer z jarki.

Mozesz sobie podpiac zeby podczas budowania mavenem/gradlem odpalal sie jakis webpack (czy co to sie teraz uzywa na rakowych frontach ;p) i jako target mial static
  • Odpowiedz
#java #spring #springboot #jms #programowanie #notification

Cześć Mirki,

tworzę sobie aplikację z użytkownikami i projektami i chciałbym stworzyć funkcjonalność powiadomień w rzeczywistym czasie pomiędzy użytkownikami. Czyli dany użytkownik A przypisał projekt użytkownikowi B to użytkownik B na przeglądarce powinien dostać w jakimś dymku lub ukryte pod jakimś przyciskiem powiadomienie że ma nowy projekt. Aplikację robię w oparciu o JAVA Spring Boot.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dzimen: reactor w ogóle nie rozwiązuje Ci twojego problemu, a JMS tylko połowicznie, bo i tak klient musi jakoś "pobrać" te notyfikacje.

Połączenie Websocketem pozwala na to, żeby klient dostał powiadomienie i na nie zareagował.
  • Odpowiedz
Szukam rekomendacji kursów z zakresu Java i Spring
Coś co pozwoli mi być lepszym juniorem, albo pozwoli przeskoczyć wyżej
Może jakieś blogi warte obserwacji?
Z góry dzięki ( )
#programowanie #java #spring #backend
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#java #naukaprogramowania #spring #springboot #springsecurity #angular #typescript spring security serwis angular Hej mam w swojej apce, zrobuione logowanie za pomocą loginForm() jak w postmanie wysyłam POST na /login?username=user&password=user to poprawnie mnie loguje, ale jak próbuje wysłać posta za pomocą serwisu w Angularze to wysyła się tylko OPTIONS i zwraca 403, domyślam się że chodzi o CORS ale w
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@infamia: nie zdążyłem edytować:
angular pewnie bije z innego adresu niż stoi twój serwer i Twoje security blokuje options na tym styku.

1. W security dodaj .cors().disable() [czy jakos tak]
2. Reverse proxy
3. Spermituj wszystkie options
4. Poprawnie zkonfiguruj cors
  • Odpowiedz
Cześć,

Pytanko odnośnie streamów w javie a konkretnie filtrowania - czy jest możliwe filtrowanie po wczesniej zdefiniowanej liście stringów?

np. mamy listę miast w Polsce i chcemy uzyskać listę miast bez miast z Podkarpacia ( ͡° ͜ʖ
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Próbuję w Eclipsie zbuildować projekt, to pokazuje mi błędy, ale jak builduje go za pomocą Mavena (opcje clean build) w Eclipsie, to wszystko jest ok. Są tu jakieś opcje do wybrania czym ma być buildowany projekt, czy jest to czymś innym spowodowane?

#spring #eclipse #programowanie #java
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #java #spring #testowanieoprogramowania #junit

Polecicie jakiś tutorial do pisania testów jednostkowych aplikacji w Springu? (Najlepiej przy użyciu JUnit, Mockito.)

Większość tutoriali o testach skupia się na samym JUnit albo o tym jak w teorii pisać testy.
Samego JUnita nauczyć się jest łatwo, a teorię o tym jak i co powinno się testować to potem sobie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@mk321: jak podnosisz context springowy to masz testy integracyjne. Oddzielne testy na kazda klase i testujesz wszystko co w danym pakiecie jest wystawione, a nie tylko publiczne metody. Junit4 skoro mowimy o runnerach, wwiec imo mockitorunner, albo dla jakichs utilsow to parametryzowany runner. Controllery sie testuje z mockmvc I controlleradvice wiec powinno tez walidacje i odpowiedzi na bledy pokryc.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 2
@mk321: testuj logikę a nie czy springowe adnotacje działają, najlepiej też jak nic nie mockujesz

Jeśli testujesz metodę kontrolera który wola serwis który jedyne co robi to wola repo żeby zapisać encje - robisz to źle. W ten sposób przetestowales czy spring działa. Pracownicy pivotala pewnie się ucieszą z dodatkowego testu ( ͡° ͜ʖ ͡°)

Kluczem nie jest 100% coverage-u tylko mądre przetestowanie funkcjonalności, logiki biznesowej
  • Odpowiedz
Czy mógłby ktoś mi podpowiedzieć jaki mechanizm odpowiada za to, że jak mam w springu metodę
np. findByUsername, która znajduje się w interfejsie, który rozszerza interfejs spring CrudRepository, to działa ona bez żadnych deklaracji? Czy interfejsy nie są własnie po to aby dopiero powiedzieć co ma dana klasa robić? Chyba, że jest to gdzieś zadeklarowane, ale nie mogę tego znaleźć. Jak istnieje interfejs, to musi być również klasa, która go
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czołem! Słyszeliście coś o akademiaspring.pl? Orientujecie się mireczki czy warto? Do jutra są zapisy i zastanawiam się, czy nie spróbować. Cena jest spora i wolałbym posłuchać opiniii :D

#programowanie #spring #java
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tony_brasci: na temat kosztów się nie wypowiem, bo to trzeba do czegoś odnieść, a ja nie mam do czego - nigdy mnie kursy / bootcampy nie interesowały

moja rada jest taka - weź sobie rozkład kursu i zrób to samo po swojemu. to ma 2 zalety:
1. nauczysz się tego co jest w planie
2. nauczysz się jak się uczyć.

jeśli gdzieś utkniesz to nie ma problemu - to nie
  • Odpowiedz
@secret_passenger: W zasadzie takie podejście zastosowałem gdy uczyłem się ETL i przyniosło zamierzony skutek. Także jak najbardziej się zgadzam z takim podejściem. Teraz po prostu chciałem mieć ustrukturyzowany plan nauki, ale w sumie czemu nie iść według rozkładu, który jest przygotowany na stronie i robić to po swojemu :D
  • Odpowiedz
Jaka jest dobra praktyka w przypadku gdy mam stronkę z formularzem do edycji modelu ale nie chcę w formularzu dawać inputów do edycji wszystkich pól? Chowamy wszystkie nieużywane atrybuty do hiddenów czy też w handlerze zaczytujemy jeszcze raz model z bazy i nadpisujemy tylko pola do których chcemy dać możliwość edycji? Czy też jest jeszcze jakieś inne rozwiązanie (trzymanie obiektu w sesji?)
#spring #java #programowanie #
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 4
@Lizbona: Hidden input user i tak może Tobie zmienić. Bo stronie backendu zawsze weryfikuj przysłane przez usera dane. W tym przypadku wykorzystujesz tylko te na których edycję zezwalasz.
  • Odpowiedz
@klaun-szyderca: ok, czyli to ten sposób o którym pisałem: czyli doczytanie sobie stanu najpierw przed zapisem, skopiowanie tego co chcę i potem zapis. Tylko tak się zastanawiałem czy nie ma jakiegoś sprytniejszego springowego onelinera na to żebym nie wynajdował jeszcze raz koła :)
  • Odpowiedz
Hej
Zastanawiam się jak w aplikacji opartej o spring boota + spring security + vaadin rozwiązać problem by użytkownik miał dostęp tylko do swoich zasobów z db.

Załóżmy, że mamy aplikację typu CRUD (jakąś todo listę). Pierwotnie zakładałem, żeby w warstwie service wyciągającej zadania użytkownika (po id lub po jakiejś jego nazwie) z repozytorium springowego (w oparciu o hibernate) jakoś wyciagać id zalogowanego użytkownika i przekazywania go do metody (zdefiniowanej w interfejsie implementujacym crud
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie jak się aplikacja zachowa w momencie gdy naraz będzie zalogowanych więcej użytkowników?


@Generyczny_nick: normalnie, każdy z tych użytkowników będzie 'istniał' w obrębie własnego kontekstu.

A może spring security (podejrzewam, że tak) oferuje już gotowe mechanizmy do rozwiązania tego
  • Odpowiedz
@Generyczny_nick: Spring Securty dostarcza sporo mechanizmów, które mogą to rozwiązać. Najprościej jest zrobić w repo metodę getTodosByUserName(String username) a w kontrolerze najpierw ze Spring Security pobrać nazwę obecnie zalogowanego użytkownika, a później wywolać w/w metodę i zwrócić wynik.
Pamiętaj, że każdy użytkownik ma swoją sesję, więc nazwa użytkownika zwrócona przez Spring Security będzie za każdym razem odzwierciedlała osobę, która wykonała request.
  • Odpowiedz