Podczas tworzenia zadań asynchronicznych możemy wskazać własną pulę wątków. Takie rozwiązanie jest lepsze niż operowanie na domyślnej puli wątków, ponieważ pozwala nam kontrolować jej parametry. Java dostarcza przyjazny mechanizm Executors, który umożliwia tworzenie puli wątków.
Autor: Krzysztof Chruściel
CompletableFuture – dlaczego, po co, jak?
Klasa CompletableFuture jest z nami od dłuższego czasu, jednakże ostatanimy czasy stosowałem ją bardzo często. Podczas swojej pracy postanowiłem spisać między innymi na co warto zwrócić szczególną uwagę stosując CompletableFuture, jak działają poszczególne transformacje oraz jak obsłużyć sytuacje wyjątkow, zapraszam!
ThreadFactory, czyli pool-n-thread-m
Jestem zdania, że nie ma co na siłę dorzucać wielowątkowości do każdej tworzonej aplikacji, jednakże czasem dostajemy zadanie, w którym musimy zrównoleglić wykonywanie zadań. “Dobra” wielowątkowość może poprawić wydajność i czas przetwarzania naszej aplikacji, jednakże taki przywilej niesie ze sobą także różne utrudnienia takie jak choćby debugowanie. Czy możemy to jakoś uprościć?
Java 10 – czyli “var” na pokładzie
Jakiś czas temu opisywałem featury z Javy 9, tymczasem 20 marca została wydana Java w wersji 10. Po raz kolejny nie wprowadza ona tak dużych zmian jak wersja 8, jednakże pojawił się ciekawy feature zwany “local variable type inference“. Java pomimo, iż jest językiem statycznie typowanym, od wersji 10 pozwala nam na lekkie złamanie tej obietnicy,
#31 Spring Boot – Zuul – API Gateway
API Gateway to wzorzec integracyjny. W wzorcu tym, tylko jeden serwis (może być oczywiście replikowany) udostępniony jest publicznie. Klientami naszego API mogą być aplikacje mobilne, strony web lub inne urządzenia. Musimy zapewnić im możliwość korzystania z naszego API w sposób zunifikowany. Aby to osiągnąć udostępniamy jeden publiczny serwis zwany API Gateway, który odpytywany przez różnych klientów zajmuje się kierowaniem ruchu na podstawie filtrów i określonych routingów.
Java 9 – JShell czyli read-eval-print loop
Java 9 jest już z nami oficjalnie od pewnego czasu, pewnie u niektórych osób działa już na produkcji. Najnowsza wersja nie przyniosła aż tak dużych zmian jak Java 8. Oprócz modularności czy zmian związanych ze składnią tak zwanych syntactic sugar, pojawił się mechanizm, który występuje w wielu innych językach, a mianowicie REPL (ang. Read-Eval-Print Loop). W Javie 9 nazywa się JShell i jest najczęściej wykorzystywany do prototypowania oraz nauki języka.
#30 Spring Boot – Resource Server
W poprzednim wpisie przygotowaliśmy rozwiązanie korzystające z Single Sign-On. Teraz korzystając z tego mechanizmu chcielibyśmy zabezpieczyć inne moduły naszej aplikacji. Aby to osiągnąć, nasze moduły muszą stać się serwerami zasobów (ang. Resource Server). Jak to zrobić wykorzystując Spring Boot’a? Zapraszamy do wpisu!
#Book – NEGOCJUJ! Czyli jak zwyciężać w codziennych sytuacjach
Wiem, że nie jest to blog typowo “lajfstajlowy” tylko techniczny, jednakże często czytam książki niekoniecznie związane z programowaniem i światem IT. Tym razem zostałem przekonany bardzo dobrym wystąpieniem Wojtka Wóźniczki w podcaście “Więcej niż oszczędzanie pięniedzy” Michała Szafrańskiego i postanowiłem zakupić książkę dotyczącą negocjacji. Negocjowanie to umiejętność, która może znacząco (pieniądze) wpłynąć na nasze życie!
#29 Spring Boot – Single Sign-On
Podczas tworzenia aplikacji prędzej czy później pojawi się temat bezpieczeństwa. Musimy zastanowić się w jaki sposób chcemy chronić nasze zasoby oraz jaki typ uwierzytelniania wybierzemy. W dobie mikroserwisów nie jest to już takie proste jak w monolicie. Dziś wpis dotyczący podejścia Single Sign-On, zapraszamy!
#28 Spring Boot – Testowanie z GreenMail
Podczas przygotowania mojej prezentacji na SpreadIT, obracałem się wokół domeny związanej z mejlami. Ponieważ była to prezentacja o TDD, musiałem w jakiś sposób przetestować moją usługę do wysyłania mejli. Po wyszukaniu dostępnych rozwiązań postanowiłem wybrać bibliotekę GreenMail. Jest to prawdopodobnie jedyna biblioteka, która może być wykorzystywana jednocześnie do wysyłania jak i odbierania emaili.