Java

Docker + Spring Boot – zamykamy aplikację w kontenerze Dockerowym

Kontenery Dockera stały się bardzo popularne. Bardzo ułatwiają tworzenie i deployment aplikacji. Szybko możemy zbudować kontener wraz z wszystkimi zależnościami projektu i zdeployować go na środowisku testowym/produkcyjnym lub wysłać do innych zespołów, które korzystają z nasze aplikacji. Jeśli pracujemy z mikroserwisami, jest to idealne rozwiązanie, aby uruchomić wszystkie potrzebne serwisy, a następnie skupić się na rozwijaniu swojego. Pozwala to też bardzo szybko uruchamiać środowiska testowe całej naszej aplikacji, na przykład na potrzeby CI/CD.

W tym wpisie pokażę jak zamknąć prostą aplikację napisaną w Spring Boocie w kontenerze. Dodatkowo pokażę też kilka sztuczek, przydatnych w sprawdzaniu co się dzieje z naszym kontenerem, oraz jak wysłać nasz kontener do zewnętrznego repozytorium Docker Hub. Zaczynajmy!

Czytaj więcej »Docker + Spring Boot – zamykamy aplikację w kontenerze Dockerowym

Java Bean Validation – sprawdzanie poprawności przesłanych danych

Chcesz szybko sprawdzić, czy użytkownik przesłał poprawne dane do aplikacji? Z pomocą przyjdzie Ci Java Bean Validation! Używając tej biblioteki i kilku prostych adnotacji, jesteśmy w stanie opisać, jakich pól oczekujemy w obiekcie przekazanym do metody lub jakie ograniczenia powinny zostać narzucone parametrom przekazywanym do naszej metody.

Cała specyfikacja jest opisana jako JSR-380. Aktualnie najczęściej używaną i jedyną certyfikowaną implementacją jest Hibernate Validator. Tak, to ta sama firma, która stworzyła Hibernate do komunikacji z bazą danych, jednak Validator to oddzielna biblioteka i możesz ją używać niezależnie od bazy danych. Chociaż możemy z jej pomocą również sprawdzać poprawność encji, ale o tym w innym poście.

Zobaczmy, jak to wygląda w praktyce. Biblioteki możemy użyć samodzielnie i ręcznie wywołać sprawdzenie. Możemy jej użyć również w Springu i automatycznie sprawdzać dane przekazywane do naszego kontrolera. Lub jak już wspomniałem wcześniej, można ją użyć w połączeniu ze Spring JPA. W tym wpisie skupie się na pierwszej metodzie. Najłatwiej będzie mi to pokazać na przykładzie.

Czytaj więcej »Java Bean Validation – sprawdzanie poprawności przesłanych danych

Java 14 – Co nowego w kolejnym wydaniu?

Java 14 jest już za rogiem. Według oficjalnego planu powinna trafić do nas 17 marca 2020 roku, a wraz z nią szereg nowości. Co zatem znajdziemy w 14 wersji naszego ulubionego języka programowania? 🙂

Wszystkie funkcjonalności opisane są jako JEP – Java Enhancement Proposal. Lista wszystkich JEPów znajduje się poniżej wraz z linkami do krótkiego opisu. W opisie znajduje się też odnośnik do oryginalnej dokumentacji na stronie OpenJDK.

Czytaj więcej »Java 14 – Co nowego w kolejnym wydaniu?

Java 14 – Record classes

Wydanie nowej wersji Javy zostało zaplanowane na 17 marca 2020. Wśród zapowiedzianych nowości znajdują się rekordy (records). Mają one służyć do przechowywania płytkiego, niemutowalnego stanu aplikacji. Co to oznacza w praktyce? Przede wszystkim mniej powtarzalnego kodu który musi wygenerować i utrzymać programista.

Funkcjonalność ta jest opisana jako Java Enhancement Proposal 359 (JEP359). W 14 wersji języka wejdzie ona jako preview. Oznacza to w pełni działająca funkcjonalność która w przyszłych wersjach może się zmienić lub nawet zostać całkowicie usunięta. Wszystko w zależności od informacji zwrotnej od programistów którzy zdecydują się jej używać.

Czytaj więcej »Java 14 – Record classes
Spring Mail

Spring Mail + Spring Boot – łatwe wysyłanie maili z aplikacji w Javie

Duża ilość tworzonych aplikacji potrzebuje w którymś momencie wysłać maila do użytkownika. Czy to maila rejestracyjnego, czy jakieś inne powiadomienie dla użytkownika. W Spring Boocie jest do tego odpowiedni moduł (Spring Boot Starter Mail) który nam to bardzo ułatwia. W tym poście przedstawię jak go skonfigurować i użyć w przykładowym projekcie.

Czytaj więcej »Spring Mail + Spring Boot – łatwe wysyłanie maili z aplikacji w Javie
Switch expressions

Switch expressions w Java 13 – nowa składnia switchy

Switch expressions to kolejna z nowości w Javie 13. Dzięki tej zmianie, kod może wyglądać dużo prościej i czytelniej, a co za tym idzie będzie się pojawiać mniej błędów. Wciąż jest to wersja preview funkcjonalności, która pojawiła się w Javie 12. Jednak po feedbacku ze strony programistów doczekała się kilku zmian. W nowej odsłonie języka zdecydowano się pozostawić ją nadal jako preview tego co nas czeka w kolejnych wydaniach.

Całość zmian opisana jest w JEP 354 (JEP – Java Enhancement Proposal). Wspominałem też o tych zmianach w poprzednim wpisie o wszystkich nowościach w Javie 13. Jednak jest to dość obszerny i ciekawy temat, więc zdecydowałem się poświęcić mu osobny wpis. Pokażę w nim jak używać nowej składni oraz jakie zmiany zaszły w wykorzystaniu starej na różnych przykładach. Dodam też porównanie jak by to wyglądało przed wprowadzeniem zmian.

Czytaj więcej »Switch expressions w Java 13 – nowa składnia switchy

Text Blocks Java 13 – czyli bloki tekstu w kodzie

  • Michał 
  • Java

Text Blocks to jedna z nowych funkcjonalności która weszła jako preview w Javie 13. Oznacza to, że jest to nowy element języka, w pełni wyspecyfikowany, w pełni zaimplementowany, ale może zostać jeszcze zmieniony po informacji zwrotnej od developerów którzy zaczną z niej korzystać.

O blokach tekstu wspomniałem już w poprzednim artykule o wszystkich nowościach w Javie 13: https://blog.mloza.pl/java-13-nowe-funkcjonalnosci-szczesliwej-trzynastki/. W tym poście postaram się napisać szerzej i podać więcej przykładów wykorzystania. Cała specyfikacja jest dostępna tutaj: JEP 335.

Bloki tekstu ułatwiają pracę z wielolinijkowymi Stringami. Nie trzeba ich konkatenować żeby dobrze wyglądały i nie psuły czytelności kodu. Nie musimy dodawać specjalnych znaków do łamania linii. Nasz kod też będzie lepiej wyglądał ponieważ możemy dodać wcięcia w kodzie które zostaną usunięte w preprocesingu. Jeśli programowałeś w innych językach (np. w Pythonie) to powinieneś być zaznajomiony z tą koncepcją.

Czytaj więcej »Text Blocks Java 13 – czyli bloki tekstu w kodzie

Java 13 – nowe funkcjonalności sczęśliwej trzynastki

17 września pojawiła się nowa wersja Javy oznaczona numerkiem 13. Mam nadzieję, że nie będzie to pechowa wersja i będzie działać jak trzeba. Java 13 wprowadza kilka nowych funkcjonalności. Poniżej możesz znaleźć listę JEPów (Java Enhancement Proposal) wprowadzonych w nowym wydaniu wraz z odnośnikami do oryginalnych opisów.

Czytaj więcej »Java 13 – nowe funkcjonalności sczęśliwej trzynastki

Spring Boot – Spring Data JPA część II: Powiązania między tabelami

W pierwszej części postu Spring Boot – Interakcja z bazą danych, czyli Spring Data JPA, opisywałem jak się połączyć z bazą i jak stworzyć pierwszą encję. W tej części postaram się pokazać, jak możemy zdefiniować powiązania pomiędzy encjami oraz jak możemy wykonywać zapytania z ich użyciem.

Czytaj więcej »Spring Boot – Spring Data JPA część II: Powiązania między tabelami