Loading the concrete implementations of API at runtime

Image Credit: Ross Sneddon@Unsplash

The interconnection of interdependency between two modules is defined by the interface between them because any two modules cannot be connected if there exists no interface between them.


The Service Loader allows separating an API and its implementations in different JARs. The client code depends on the API only, while at runtime, the implementation(s) that is (are) on the classpath will be used. This is a great way to decouple the client code from the implementing one. Of course, dependency injection or inversion of control frameworks is another way to achieve the same and more. …

Nothing makes a system more flexible than a suite of tests. Nothing. Good architecture and design are important, but the effect of a robust suite of tests is an order of magnitude greater. It’s so much greater because those tests enable you to improve the design.

- Uncle Bob

Writing test cases is a crucial part of development in any software development field. It has become inevitable to write a test case of every feature of the application you develop to ensure its expected behavior at any instant.

I was recently working on a Java-based application that involves HTTP calls…

“Don’t reinvent the wheel. If you need to do something, there may already be the class in the libraries that does what you want. If there is, use it; if you don’t know, check.” (Effective Java By Joshua Bloch)

Google Guava is an extensive suite of common libraries developed by engineers at Google. This open-source set of libraries has been a solution to many common problems encountered at Google, while developing various Java projects, in the areas of collections, caching, primitives support, concurrency, common annotations, string processing, I/O, and validations.

This post will focus on 10 useful utilities Guava libraries…

The software industry is a fast-paced and extremely competitive space. It is constantly flooded with new technologies, processes, and tools that attempt to keep pace with the demands of the day. Most of these products and concepts that hit the market are extremely trendy and have a short life. This makes it extremely difficult for the organization to determine what to adopt, and when to adopt it. This brings us to a fairly recent trend that is seeing ever-increasing adoption, microservices.

Microservices architecture is a derivative of service-oriented architecture(SOA) in the way that they seek to modularize an application into…

I was recently working on a project where there was a need to secure the web application using Azure Open ID connect solution, Azure Active Directory. This was chosen because it was already installed, validated, and secured other applications of the organisation.

In this post, I will be going step by step on how to integrate spring boot web application with Azure Active Directory and will be then configuring the customized roles for the authenticated user in the web application.

Step 1 : Creating Our Web App

  • Browse to https://start.spring.io/.
  • Specify that you want to generate a Maven project with Java, enter the Group and Artifact names…

Have you ever observed padlock in the address bar of your browser?

Any idea why it’s there?

If not, keep reading 😊

I am sure you might be aware that this is something related to security over the web. Now the question arises on how this security is attained?

Well, the simple answer has to do with encryption and encryption is security.

The communication between the client and server are encrypted using SSL. SSL is used to secure transactions, data transfers and logins and more recently it is becoming the norm when securing browsing of social media sites.

There are…

We all strive to be the best version of ourselves. There are some habits that will make us excel in whatever career we are in right now. It took me a while before I start developing these habits that made me a better Software Developer.

The beginning of a software development career is usually about getting to a basic level of competence. It usually goes something like this. First, learn a chosen language with all its peculiarities. Then proceed with learning the whole ecosystem around the language, popular libraries, frameworks, build systems, conventions, best practices.

I’ve learned a lot about…

Sugandha Sapra

Software Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store