Mirki z #programowanie #java #spring #mybatis

mam do napisania swego rodzaju watchdoga , który będzie raportowal czy jest polaczenie z baza danych i rozne takie, takie. I rodzi sie pytanie. Czy znacie moze jakis ciekawy sposob zeby obsłużyć polaczenie z bazą danych, że jak nie będzie tego polaczenia, to nie p--------e mi masą błędów z powodu braku połączenia ? ( ͡° ʖ̯
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Uczę się aktualnie Spring Data i w większości przypadków wykorzystuję interfejs CrudRepository bez dopisywania nowych deklaracji metod. W związku z tym mam wiele identycznych klas wyglądających tak:

public interface FooRespository extends CrudRepository {
}

Próbowałem wykorzystać od razu generyka do autowiązania ale niestety takie podejście nie działa. Czy jest możliwość aby uniknąć tworzenia ciągle tych samych klas?

@Autowired
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#spring #java #naukaprogramowania #hibernate

Witajcie Mireczki, piszę sobie moją pierwszą aplikacje z użyciem Spring + Hibername, a mianowicie Blog. Natrafiłem jednak na przeszkodę z którą nie wiem za bardzo jak sobie poradzić, otóż każdy post (Item) może mieć maksymalnie jeden komentarz (Comment). Pierwszy komentarz się dodaje, natomiast drugi zastępuje ten poprzedni (przy pierwszym jest Insert Into w konsoli, natomiast przy drugim jest już update). Podejrzewam,
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nuker92:
Po 1
zainstaluj sobie plugin .gitignore i wrzuć tam folder .idea i plik IDE .iml
2. W przypadku usera, po co ci ID numeryczne, lepiej zrobić name jako ID.

3. Dlaczego nie oznaczasz encji anotacją @Table
  • Odpowiedz
Hej, mam aplikację webową w #java #spring, która przy uruchomieniu pobiera sobie część danych z DB przez JPA, oblicza na nich różne rzeczy i trzyma je razem z wynikami obliczeń w strukturach. Przy modyfikacji danych (zdarza się rzadko) nowe dane (i ich przeliczenia) lecą i do db, i do struktur.
Czy większy sens ma podział aplikacji na warstwy:
1. Jpa<-Dao<-Usługi<-Rest - Dao trzymają na stałe encje, które
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lol_nope:
Serwisy bezstanowe są ogólnie o wiele łatwiejsze w implementacji. Generalnie przy pierwszym podejściu powinieneś wykonywać operację na obiektach JPA i od razu je zapisywać. W przypadku przechowywania wyników obliczeń albo na twoim miejscu stworzyłbym serwisy stanowe albo dodał jakieś cachowanie po stronie hibernate'a (2nd level cache), lub query cache ze springa (zwłaszcza jeśli modyfikacja danych zdarza się rzadko).
Jeśli chodzi o DDD to nigdy tego nie wykorzystywałem, więc średnio
  • Odpowiedz
  • 0
@Ambidex: dzieki, artykuly zaczalem czytac i jakistam pomysl jak to rozplanowac juz mam, ale nie znalazlem rozwiazania jeszcze jednego problemu niezaleznie od podejscia: jezeli zapisze sobie cos do db, potem zmodyfikuje obiekty domeny/obiekty zapisane w service, a potem bedzie rollback, to przeciez nie cofnie mi zmian w obiektach. Da sie to jakos rozwiazac? Zapisywac historie zmian i implementowac sobie jakos XAResource albo samemu pilnowac rollbackow i commitow i cofac? To
  • Odpowiedz
#java #spring #programowanie

Mirki, zdarza Wam się w Waszych aplikacjach ładować często pozyskiwane obiekty/kolekcje np. z bazy danych do pamięci podręcznej? Korzystacie wtedy z WeakReference? Czy wujek Spring/Hibernate udostępnia jakieś automatyczne mechanizmy do keszowania?
Możecie podać przykład takiego użycia?
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy wujek Spring/Hibernate udostępnia jakieś automatyczne mechanizmy do keszowania?


@roszd23: Hibernate ma cache wbudowane, dodatkowo mozesz ustawic Second level cache np. terracota czy ehcache
  • Odpowiedz
@roszd23: Tak jak pisał @M4ks jeśli często idzie Ci odczyt przez JPA to masz second level cache. Korzystanie z WeakReference i SoftReference ma sens jeśli chcesz kontrolować co ma się dziać z obiektami kiedy następuje GC. Korzystanie z nich ma sens tylko jeśli masz ryzyko wczytania znacznej ilości danych, które mogą przekroczyć ewentualny limit procesu.
  • Odpowiedz
#programowanie #spring #java Mirki piszę aplikację m.in. z użyciem Spring JPA, i struktura mojego projektu wyglada tak, że mam tam sobie kontrolery, konfigurację i najważniejsze:
- Mam model, później mam repozytorium które rozszerza JpaRepository i później mam Service do którego sobie autowiruję repozytorium i z tego serwisu pobieram dane w kontrolerach. Czy to jakaś zła ( może dobra? ) praktyka ? Jeśli tak to co powiniem
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mediateh7: Ogólnie przyjęta praktyka, jest taka jak robisz - czyli wszystko warstwowo, nie mniej w tym układzie często warstwa "service" jest tylko proxy do repozytoriów/dao na której konfiguruje się transakcje i ewentualnym miejscem gdzie wali się obejścia baboli, bo z DAO z kolei jest drętwą przykrywką na hibernate lub coś w ten deseń.

Ja już jakiś czas temu zrezygnowałem z tego i transakcje waliłem na poziomie kontrolera ;P Jeśli zastanawiasz
  • Odpowiedz
Może i mnie zjedziecie, ale moim zdaniem nie programuje obiektowo ( ͡° ͜ʖ ͡°) service , managery, utilsy i inne gady zmuszają cię do programowania imperatywnego. Dlatego, że nie enkapsulujesz stanu tylko czynność jak już w takim podejściu. Ogólnie wrzuć w google "objects ending with er" po więcej info. O ile da Ci to ogólne podejście do wszelakiej maści workerów to z service'ami może to nie być już
  • Odpowiedz
#spring #programowanie #java Przy nauce springa natknąłem się na 2 sposoby "konfiguracji" aplikacji jeden poprzez tworzenie pliku "AppConfiguration itp." w którym są deklarowane beany a drugi to poprzez .xml application context, czy któraś z metod jest odradzana/przestarzała czy zależy to tylko ode mnie co wybiorę ?
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mediateh7: W springu widać wyraźnie trend eliminacji używania xmla do konfiguracji.
Z kilku przyczyn:
-Xml jest mniej czytelny
-Konfigurację w javie pisze się po prostu szybciej
-Łatwiej zauważyć błędy w konfiguracji javowej.
  • Odpowiedz
Siema mirki, mam pytanie, może mondre może gupie nie wiem.

Jakie są najlepsze praktyki w zakresie uploadowania i przechowywania pojedynczych dużych plików(1-15GB). Robił ktoś z was coś takiego?
Używaliście do tego DB czy jakiegoś innego dedykowanego narzędzia?

#spring
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej #programowanie, znacie jakies dobre ksiazki/kursy dotyczace projektowania aplikacji? Konkretnie chodzi mi o #java i aplikacje webowe w #spring, ale to chyba malo istotne.
Zazwyczaj jak cos pisze, to mam tylko ogolny zarys architektury, a reszta mi wychodzi po drodze i zmienia sie w trakcie, a chyba powinno byc odwrotnie...
Po prostu majac w glowie cala aplikacje nie umiem sobie z gory powydzielac wszystkich
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak masz sporo czasu to pisz TDD. Na poczatku ta metodyka jest malo wydajna jak nie potrafisz za bardzo pisac testow. Jak latwo Cisie bedzie pisac testy jednostkowe, to znaczy ze twoja architektura jest w porzadku.
  • Odpowiedz
@lol_nope: Zainteresuj się czymś co nazywa się DDD (domain driven design). Ostatnio mój kolega z pracy był na szkoleniu z tegoż i tam właśnie duży nacisk kładziony jest na to jak projekt ma być poukładany, żeby nie zrobiło się spaghetti :) Ja zapisałem się na drugą turę tego szkolenia więc dopiero wtedy będę mógł powiedzieć więcej ( ͡º ͜ʖ͡º)

@yelen: TDD (test driven
  • Odpowiedz
Mirki z racji promocji 2 za 1 - co lepiej wybrać do Springa?
Spring w akcji wyd. 4 czy Spring Framework (http://helion.pl/ksiazki/spring-framework-wprowadzenie-do-tworzenia-aplikacji-wydanie-ii-j-sharma-ashish-sarin,spfrwp.htm) - obie widziałem w Empiku i treściowo bogatsza zdecydowanie ta pierwsza, jednak opinie na Helionie trochę przerażają (ale mam nadzieję, że raczej tyczą się 3 wydania)
#spring #java
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki z #programowanie, mam nadzieję, że jeszcze nie śpicie ( ͡° ͜ʖ ͡°)
Z racji tego, że w mojej ankiecie zwyciężyła konfiguracja #spring przez adnotacje, to postanowiłem spróbować przesiąść się z xml-a i trafiłem na problem:
Mam 2 aplikacje, obie załączają MyCommons.jar.
W MyCommons.jar mam:
- WhateverBean implements
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@moriturius: Do jeszcze trochę ponarzekam :p
Przy takim podejściu potem ludzie narzekają na OOP, że są klasy w stylu AbstractFlushClearCacheMessageBuilderOnTransactionSupport, a w środku kilka linii kodu :p
No i jak wracasz do kodu po latach i chcesz zobaczyć co dana metoda robi, to musisz przebić się przez pierdyliard klas, zanim dojdziesz do tego, że w zasadzie to są 3 settery na krzyż :p
Ale generalnie masz rację, w wolnej chwili
  • Odpowiedz
Mireczki, zdawał ktoś certyfikat Spring Core? jakieś rady jak najlepiej się przygotować? jakieś szczególnie polecane materiały?
na razie uczę się z notatek ze szkolenia, i niektórymi rozdziałami Spring in Action
#java #spring
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #spring #angularjs

Zawsze robiłem aplikacje w Springu i do tego strony widoków w JSP (/src/main/webapp/views). Teraz zrobiłem w Springu kontrolery REST i chciałbym do tego widoki zrobić w AngularJS.
Jaka jest dobra praktyka, żeby się do tego zabrać?

1. Trzymać pliki *.html z kodem angularowym w katalogu z zasobami (/src/main/resources), do którego włączę obejście, żeby pliki były od razu serwowane:
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#spring #java #programowanie

Nie mogę zrozumieć konfiguracji Spring MVC. Niby mogę skopiować gotowca, ale zawsze mam z tym problem, że nie wiem w którym pliku co robić. Jak czytam w książkach/tutorialach, to w każdym jest inaczej i już się gubię ( ͡° ʖ̯ ͡°)

Od razu zaznaczam, że nie chcę korzystać ze Spring Boot (na którym opierają się tutoriale ze spring.io). Konfigurację chcę w XML, a
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #java #spring #webdev

Chcę napisać aplikację, która: będzie pobierać stronę internetową (z obrazkami, CSS itd), zapisywać ją do bazy, odczytywać, wyświetlać stronę w przeglądarce.

Oczywiście prosto w Javie nie mogę tego zrobić (za pomocą HttpURLConnection, setRequestMethod("GET"), InputStreamReader) bo mam sam kod HTML (bez obrazków itd). Musiałbym ręcznie ściągać wszystkie linki, potem podmieniać w kodzie linki do nich itd.

Podobno
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

zapisywać ją do bazy, odczytywać, wyświetlać stronę w przeglądarce.


@mk321: Po co chcesz je trzymać w bazie ,aby wyświetlić potem w przeglądarce?
Nie lepiej trzymać je jako statyczne pliki na dysku a w bazie tylko identyfikatory które będziesz nadawał zapisując pliki?
  • Odpowiedz
@mk321: Czy jesteś świadomy, że NoSQL a Hibernate to są zupełnie inne bajki? NoSQL to "typ" bazy danych a Hibernate to framework realizujący dostęp do bazy danych?
  • Odpowiedz
Poszukuję biblioteki do #java do websocket z automatycznym fallbackiem do long-polling i żeby działało jako servlet. Ktoś coś zna, poleca?

  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lol_nope: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

25.1.1 WebSocket Fallback Options - (...) Therefore to build a WebSocket application today, fallback options are required in order to simulate the WebSocket API where necessary. The Spring Framework provides such transparent fallback options based on the SockJS protocol. These options can be enabled through configuration and do not require modifying the application otherwise.
  • Odpowiedz
Mirki z tagu #spring i #java jeżeli potrzebuję: on event, asynchronicznie, wykonać jakiś job, który ma potencjał na deadlock i potrzebuję zapisać jak się powiodło wykonanie. Jest jakiś framework, który to opęka? Wiem, że istenieje anotacja @Async ale nie sprawdzila się.
Drugi problem znacie jakiś framework do ssh w javie inny niż Jsch, który poradzi sobie z hostnamem jako URL i mogę stworzyć sesję i po kluczyu
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Sok_Pomaranczowy: Nie jest przypadkiem tak, że w artykule odradzają używanie bazy danych jako kolejki (to nie jest tak, że to się nie sprawdza, bo sam z takiej korzystam na współdzielonym hostingu). Natomiast Ty chcesz zapisywać wynik takiego asynchronicznego zadania? Bo jeśli tak to są to dwie odrębne sprawy.
  • Odpowiedz
@stacktrace: chcialem wpierw kolejkowac zadania w jednej tabeli a wynik zapisywac w drugiej z fk do tej pierwszej. Ale skoro kolejkowanie w db sie nie sprawdza to cala koncepcja troche upadla. Potrzebuje zapisywac i request i to jak zostal przetworzony.
  • Odpowiedz
#programowanie #java #spring #maven
Mam taki oto zestaw:
1. Prosta aplikacja w Springu trzymana w publicznym repozytorium na GitHubie
2. Postawiony u mnie Tomcat wraz z Jenkinsem

Aplikacja łączy się z bazą danych, mam zatem plik application.yml, który zawiera hasło, adres bazy itp. Mam go dodanego do .gitignore, bo nie chcę by było to widoczne na GitHubie. Jenkins buduje aplikację przy pomocy Mavena i korzysta z tego właśnie
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Sebaall: w środowiskach produkcyjnych przy podobnej architekturze używamy zmiennych systemowych do definiowania danych konfiguracyjnych.

development sobie sam ustawia np export $JDBC_URL=jdbc:oracle:thin blabla

test ma swój, a prod ma swój.
  • Odpowiedz