Debugging Java Streams with IntelliJ Plugin

With Java 8 Streams, we are now able to process elements in streams in functional style; in declarative way. This has made processing elements easier and with an option to do these processing operations parallelly. One of the problem people face with large stream pipeline is that when these pipelines need to be debugged. Suppose there are 10 intermediate operations being performed on a stream pipeline. And the output from the net stream is not coming as expected....

Last Updated April 9, 2022 · 3 min · 604 words · Anshul Gautam

Async Method Calls using CompletableFuture in Spring Boot

In my previous post, I discussed on CompletableFuture provided by Java concurrency API in JDK 8 onwards. In this article, I want to discuss on using CompletableFuture in a Spring Boot application. 🎯 ThreadPoolTaskExecutor in Spring Boot Spring offers ThreadPoolTaskExecutor as a Java bean which is an abstraction of ThreadPoolExecutor of Java concurrency API. It has key configuration values which you can configure for your application. corePoolSize: It is the minimum number of workers which Spring will keep alive without getting timed out....

Last Updated April 8, 2022 · 3 min · 593 words · Anshul Gautam

Reactive Programming using CompletableFuture in Java

Java 8 introduced CompletableFuture as part of it’s concurrency API. This is very helpful when we want to nest operations around asynchronous computations, using the native Java API only. Prior to introducing CompletableFuture, we had Future which provided asynchronous callbacks. But there were few problems associated with Future. CompletableFuture addresses them well. Let’s start with understanding what were the issues with Future, that paved the way for CompletableFuture. 🎯 Drawbacks with Future We cannot manually complete the Future object Lack of proper Exception Handling options available We cannot chain multiple Future objects together In the below example, I am creating a simple Future, and trying to get the result from it....

Last Updated April 7, 2022 · 5 min · 942 words · Anshul Gautam

Reactive Programming in Spring Boot Application

In one of my previous post on this website, I had discussed about Reactive Programming, and how we can implement that in Java using RxJava. In this post, I will be discussing on building a Reactive Spring Boot Application. The application that I will build is going to be a very simple Restful API, which will have two endpoints. One endpoint will fetch the data synchronously. Another endpoint will fetch the same data asynchronously....

Last Updated March 27, 2022 · 11 min · 2343 words · Anshul Gautam

Reactive Programming using RxJava

🎯 What is RxJava? The official documentation defines it as: It is a Java VM implementation of Reactive Extensions. Reactive Extensions is a library for composing asynchronous and event-based programs by using observable sequences. In simpler terms, RxJava incorporates Reactive Programming paradigm in Java, and helps you consume data in motion, asynchronously. You don’t need to scan through the data in motion(pull based blocking calls), in fact the each data element in the motion will come to you(push based non-blocking calls)....

Last Updated March 25, 2022 · 11 min · 2192 words · Anshul Gautam

Spring Boot Refresher

This article helps to get an overview of Spring Boot. This will also be helpful to refresh your basic concepts on this topic quickly. 🎯 What is Spring Boot? Spring Boot is comprised of two separate words; ‘Spring’ and ‘Boot’. ‘Spring’ is the Spring Framework. This is the Java Application Framework which helps you write Java Enterprise Applications. ‘Boot’ is Bootstrap. Spring Boot helps you Bootstrap a Spring Application. Well, the official definition goes something like this: Spring Boot makes it easy to create stand-alone, production-grade Spring based applications that you can “just run”....

Last Updated March 8, 2022 · 4 min · 652 words · Anshul Gautam

Problem 11 - Prime Factors of a Number

How to find prime factors of a number using Java

Last Updated February 4, 2018 · 1 min · 148 words · Anshul Gautam