Java Bean Validation – niestandardowy walidator danych

Czasem zachodzi potrzeba sprawdzenia danych, z którymi domyślne walidatory sobie nie poradzą. Możemy wtedy stworzyć sobie własny walidator, który sprawdzi nam poprawność danych. Zobaczmy jak to można zrobić.

Post jest kontynuacją serii o Java Bean Validation. W poprzednich częściach pisałem, jak można programatycznie sprawdzać poprawność danych (Java Bean Validation – sprawdzanie poprawności przesłanych danych) oraz jak to działa w połączeniu ze springiem (Java Bean Validation + Spring Boot – sprawdzanie poprawności danych w Spring Boocie). Kod źródłowy do wszystkich wpisów znajduje się w GitHubie, pod adresem: https://github.com/mloza/spring-boot-bean-validation.

Czytaj więcej »Java Bean Validation – niestandardowy walidator danych

Java 15 – Co nowego w kolejnym wydaniu?

Kolejna wersja Javy to już druga wydana w tym roku. Java 14 ukazała się w marcu. O tym co pojawiło się w niej nowego, możecie przeczytać w poście: Java 14 – Co nowego w kolejnym wydaniu?. Pół roku później mamy już wydanie oznaczone numerem 15. Ta wersja nie przynosi już tylu nowości co poprzednie (przynajmniej takich, które zauważymy w codziennej pracy). Zobaczmy, co możemy znaleźć w tym wydaniu.

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

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

Zapanuj nad monitorami w Macu

Z jakiegoś powodu, mój mac po wybudzeniu z uśpienia lub podłączeniu na nowo monitorów, nie potrafi zapamiętać, w jakiej konfiguracji powinny się znajdować. Przestawianie ich ręcznie, albo odłączanie i podłączanie na nowo, aż w końcu znajdą się w takim ustawieniu, jak powinny, jest denerwujące i uciążliwe. Szczególnie jeśli trzeba to robić kilka razy dziennie.

Na szczęście, udało mi się znaleźć na to prosty sposób. Istnieje mały program, który umie zapamiętać ustawienie monitorów, a następnie je odtworzyć. Można nawet stworzyć kilka różnych konfiguracji, jeśli na przykład w biurze i w domu mamy inne ustawienie monitorów. Program nazywa się displayplacer i możemy go zainstalować przez homebrew:

brew tap jakehilborn/jakehilborn && brew install displayplacer

Gdy już jest zainstalowany, tworzymy skrypt, który będzie odpowiedzialny za ustawienie monitorów. Wydajemy polecenie displayplacer list. Polecenie wypisze nam wszystkie dostępne tryby monitora, a na koniec wypisze polecenie, które ustawi monitory w aktualnej konfiguracji. Polecenie zapisujemy do pliku .sh tak, aby później można było go uruchomić i ustawić monitory jak trzeba.

Czytaj więcej »Zapanuj nad monitorami w Macu
Amazon Web Services

AWS Free Tier – darmowy hosting aplikacji lub strony na AWS

AWS w ramach Free Tier udostępnia nam wiele swoich usług za darmo. Niektóre usługi są dostępne w ramach darmowego pakietu przez rok, niektóre są darmowe na zawsze. Oczywiście obowiązują przy tym limity, jednak są one na tyle duże, że spokojnie możemy wykorzystać taką infrastrukturę na start projektu. Czyli dostajemy za darmo, bardzo dobrej jakości usługi, na których możemy oprzeć nasz biznes. W poście postaram się pokazać, jak dużo możemy zmieścić w darmowych limitach, jakie usługi możemy wykorzystać (w tym przypadku do hostowania projektu) i ile to będzie kosztować po roku.

Czytaj więcej »AWS Free Tier – darmowy hosting aplikacji lub strony na AWS

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