Mirki gdzie się trzyma w takiej spring bootowej apce hasła?
Potrzebuję admina login i hasło żeby się testy integracyjne wykonały, gdzie uderzam do rest endpointów i zapisuję coś na bazie. To gdzie mam zapisać to hasło i w jakiej formie?

Jak to będzie wyglądało na środowisko testowym, a jak produkcyjnym?

- Rozumiem, że mam utworzyć sobie pliki application-dev.properties, application-prod.properties i tam np. trzymać credentiale, ale właśnie w jakiej formie, bo jak wrzucę
@takiMirek29: w takim wypadku pozostaje ci podawać takie pojedyncze hasło na poziomie VMki na której będzie to odpalane poprzez dodatkowy zewnętrzny plik konfiguracyjny lub zmienne
  • Odpowiedz
Przy tworzeniu nowego seansu muszę sprawdzić czy poprzedni zakończył się już jeśli ten nowy ma być w tym samym dniu, w podobnym czasie i w tej samej sali co poprzedni. Dodatkowo mam takie wymaganie, że musi być przerwa godzinna między seansami w kinie jeśli odbywają się w tej samej sali. Wiadomo, trzeba taką salę po każdym seansie posprzątać. Np. poprzedni seans rozpoczął się 2023-01-02 o 16:30, w sali nr 3 i trwał
Jak w springu przetestować metodę saveSomething(ids...) w jakimś {User/Group/Whatever}Service.java, która wykonuje jakąś logikę z warunkiem if-else i potem za pomocą obiektu repository zapisuje obiekt w bazie?

Nie zwracam w tej metodzie nic bo ten obiekt zapisuje w jakiejś większej grupie obiektów, więc zwracanie listy zaktualizowanych obiektów nie ma sensu.

Jedyne co mi przychodzi do głowy to przetestować czy obiekt repository wywołał metodę save w zależności od argumentów metody. Czyli verify(sometService, times(1)).someMethod();

Mówię
Mireczki projektując rest api w springu, przy mappingu i przy zwracaniu ResponseEntity w metodzie kontrolera oprócz consumes i produces co jeszcze powinno się znaleźć?
1. Location do utworzonego zasobu?
2. UserAgent?
3. Domyślna wartość Pagination? - czy muszę wtedy tworzyć osobne klasy opakowujące metody pobierające produkty z bazy? Czy wystarczy, że tę wartość mogę przekazać jako parametr do metod pobierających produkty z bazy?

Pierwszy raz się tym bawię i chciałbym wiedzieć jaka
@famir96: W zależności od tego, co projektujesz, mogą, aczkolwiek nie muszą być dodatkowe wymagania. Nie ma wymagań, to tylko gdybanie. Tak, jakbyś się pytał, jak wybudować biuro, nie podając żadnych informacji o działce, którą dysponujesz czy budżecie.

Ad.1 nie, chyba że robisz coś, co coś zapisuje, tworzy, buduje, generuje. Równie dobrze, możesz przekazać URL, czy ten zasób w odpowiedzi. Chyba że nie możesz, bo w wymaganiach jest, by przekazać nagłówkiem ;)
  • Odpowiedz
Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyToMany np. User i Discount to dobrym pomysłem będzie dorobienie pola w klasie User: Map?

Potrzebuję wiedzieć czy jest aktywna zniżka czy nie. A jak zmienię pole isActivated w bazie na dowolnym obiekcie Discount to będzie to zmiana widoczna dla wszystkich użytkowników, którzy korzystają z tej zniżki, a ja chcę tylko dla jednego usera. ( ͡° ʖ̯ ͡°)
takiMirek29 - Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyT...

źródło: comment_1672406366yzXDsx5yplhxx5HKFEldfe.jpg

Pobierz
Jak tworzę POST method w rescie i dodaję użytkownika to typ zwracanego obiektu to ResponseEntity
return ResponseEntity.status(HttpStatus.CREATED).body(createdUser);

Jaki typ ma być jeśli usuwam usera? ResponseEntity ?
Zwracam tylko status czyli return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
#java #naukaprogramowania #spring
Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo mamy dwie klasy autor (posiada pole set), z adnotacja manyToMany i przy pobieraniu jakiegos autora wywala blad bo przez metode toString mamy cykliczna zaleznosc. Dalem jsonignore na te pola, ale co mi z tego jak ja chce zwrocic pelen obiekt razem z tymi polami. Jak to zrobic?

amatorski picrel
#java #hibernate #spring #naukaprogramowania
nick230 - Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo...

źródło: comment_16723132476Py2lH6WOTAGD1yafCfdLH.jpg

Pobierz
Jak to zrobic?


@nick230: W toString() autora nie wypisuj jego książek a jak już musisz to nie rób tego przy użyciu toString() tylko pola które Cię interesują. O ile faktycznie masz problem z toString().
  • Odpowiedz
@nick230: W toString powinny być tylko i wyłącznie pola należące do tej encji, bez dociągania zależności z innych. Pchasz się w N+1.... Nie panujesz nad wykonywanym zapytaniem. Włącz wypisywanie zapytań hibernate w konfiguracji springa.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@SendMeAnAngel: tak średnio. Z samym kodem mało ale kilka problemów z importami które nie działają za dobrze razem. Wiremock z Java 17 czy jooq z micrometerem
  • Odpowiedz
Mirki z #programista15k , wiem że "rychło w czas", ale mam budżet szkoleniowy do wydania do końca roku, a czasu na szkolenia brakuje ¯\_(ツ)_/¯ ... Podrzucicie mi, proszę, jakieś sensowne kursy, np. na #udemy (ale niekoniecznie), z tematów w stylu:
- zaawansowane rzeczy w #java
- zaawansowane rzeczy w #spring
- coś fajnego o JPA / #hibernate / Spring Data itd
- cokolwiek o około-programistycznych rzeczach, typu #docker , #kubernetes , #
Jest sens używać WebClient, jeśli aplikacja stoi na servlecie i wszystkie inne operacje (np. na bazie) są blokujące? Kiedyś może i tak trzeba będzie przepisać wszystko na Reactive. Na początku klient chciał gRPC, ale ze względu na brak wsparcia zmienił na REST.

Generalnie to jeśli apka stoi na servlecie, to operacje są blokujące i raczej nie ma znaczenia, czy obsługą zapytań do zewnętrznych usług zajmie się WebClient, czy RestTemplate, czy nawet natywny
@SendMeAnAngel: sens używania jest taki, że Spring team sam oficjalnie mówi, że RestTemplate jest w maintenance mode i nie będą wspiera tego dalej (ostatecznie, w którejś wersji będzie już jako deprecated) i w tym momencie zalecanym jest używanie WebClienta zarówno w aplikacjach reaktywnych i niereaktywnych. Różnica jest tylko taka, że w przypadku aplikacji niereaktywnych webclient zachowa się identycznie jak resttemplate w przypadku .block().
  • Odpowiedz
Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Kubernetesem! W trakcie tego spotkania będziemy tworzyć deployment obiektów oraz wdrażać aplikację Spring Boot połączoną z bazą danych MySQL do klastra Kubernetesowego.

Niestety, dzisiejszy LiveStream będzie dość krótki, ponieważ OpenAI zrealizuje dużo roboty za nas - pokażę Ci jak to osiągnąć Dlatego tym bardziej zachęcam, bo nauczymy się dużo nowych rzeczy, a po szkoleniu każdy będzie w stanie wdrożyć swoje
SoftBull - Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Ku...
@SoftBull: odpaliłem na chwilę to Twoje "szkolenie", nigdy wcześniej Cię nie oglądałem i nie wiem jak wygląda reszta Twojej działalności, ale to "szkolenie" z Kubernetesa w Twoim wykonaniu było moim zdaniem tragiczne.

Dlaczego szkolisz ludzi z czegoś, czego sam do końca nie rozumiesz?
Może to też kwestia stresu, bo widać że Cię stres zjadł jak CLI zaczęło Ci sypać błędami, ale w ciągu mniej niż 30
minut spokojnie można było wyłapać,
  • Odpowiedz
@SoftBull: byłem praktycznie do końca. Nie uszczegółowiłeś żadnego z wymienionych przeze mnie punktów, a jeżeli już jakiś z nich się pojawił to albo temat był poruszony bardzo pobieżnie, albo był przedstawiony w błędny sposób.
Pod koniec pojawiły się także smaczki typu "jeden Deployment z trzema ReplicaSet'ami", czy "Mam swoją domenę i nie ma portu, a strona działa". No działa, ale dlatego że port jest domyślny i jest podawany w sposób niejawny,
  • Odpowiedz
#spring #programowanie

Czy jest ktoś w stanie podpowiedzieć jak powinien wyglądać wyglądać pattern dopuszczający wszystkie originy zawierające Stringa 'swagger'? Przykładowy origin: "https://my-swagger-dev.com"

@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration().applyPermitDefaultValues();
stream(HttpMethod.values()).forEach(corsConfiguration::addAllowedMethod);
corsConfiguration.addAllowedOriginPattern(" ??? ");

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
  • Odpowiedz
Natrafiłem na pewien problem podczas testowania i choć go rozwiązałem to dalej nurtuje mnie ciekawość w jaki sposób brać na warsztat podobne sytuacje. Mianowicie, pisząc unit testy w #spring chciałem przetestować serwis, w którym metoda tworzy w sobie obiekt, coś ala klasę konfiguracyjną/wrapper, ale go nigdzie nie zwraca na zewnątrz.

classA
foo(){
Object x = new Object()
x.setSomething(...)

Jest jakiś pattern, żeby w unit testach sprawdzić poprawność wywołania takiej metody setSomething() z
@mojemirabelki:a dlaczego interesuje Cię co tworzy serwis? Ze strony unit testów wrzucasz do klasy jakiś input i dostajesz output. A to czy ta klasa coś sobie tworzy, nie jest ważne. Można zmienić implementację, żeby nie tworzyło tego obiektu a testy nadal powinny przechodzić
  • Odpowiedz
@MQs: akurat sprawdzałem czy plik konfiguracyjny odpowiednio poustawiał wartości w obiekcie mimemessage niezbędnym do wysyłania maili. Tak zachodzę w głowę jak inaczej miałbym to kontrolować poza jakimiś testami integracyjnymi. Przy ewentualnej podmianie takiego pliku co najwyżej wywali mi wyjątek lub testy, ale nie będzie sypać błędami.

W tym przypadku to widocznie moja nieuwaga, bo nie powinienem mockować takiego obiektu, a raczej sprawdzać czy taki wrapper go odpowiednio skonfigurował, co koniec końców
  • Odpowiedz
✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zautomatyzować proces wdrażania, skalowania i zarządzania skonteneryzowanymi aplikacjami. Dziś pokażę Ci jak zacząć z nim pracować, dlatego w trakcie szkolenia Live:
✅ Zaznajomię Cię z architekturą Kubernetesa - czym jest, jak działa, przybliżę kluczowe komponenty, oraz opowiem, jaka jest zasadnicza różnica pomiędzy Kubernetesem a Dockerem/Docker Compose.
✅ Pokażę Ci jak zbudować lokalne środowisko (narzędzia i oprogramowanie) do pracy z Kubernetesem.
✅ Wykonamy pierwsze wdrożenie aplikację
SoftBull - ✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zau...
@SoftBull: te twoje darmowe szkolenia to o kant dupy mozna rozbić, pamietam jak robiles szkolenie o NFT i #!$%@? pokazales jakis generator obrazków i dodawales ręcznie nft do OS a ja myślałem że będzie o blockchainie i pisaniu własnego kontraktu.

Tu pewnie bedzie to samo zamiast jak dziala k8s i jak go postawić to będzie jak uruchomić appkę na gotowych yamlach

Mam nadzieje ze chociaż te platne kursy to coś więcej
  • Odpowiedz