Top Spring Boot Interview Questions

Hello everyone, today we will discuss some top interview questions in Spring Boot.

What is Spring Boot? 

Spring Boot is an open-source, microservices-based Java framework. It is developed and maintained by the Pivotal Team and is utilized to build stand-alone and production-ready spring applications that you can just run because it requires very little spring configuration.

Advantages of Spring Boot? 

• It reduces the time spent on development and increases the overall efficiency of the development team and hence productivity.

 • It provides Embedded HTTP servers like Tomcat, Undertow, and Jetty to develop and test our web applications very easily. 

• It is very facile to integrate Spring Boot Application with its Spring Ecosystem like Spring ORM, Spring Data, Spring Security, etc. 

• It eschews inscribing lots of boilerplate Code, Annotations, and XML Configuration. 

• Allows for facilely connecting with database and queue accommodations like Oracle, PostgreSQL, MySQL, MongoDB, Redis, Solr, ElasticSearch, Rabbit MQ, ActiveMQ, and many more.

What is Spring Initializr? 

Spring Initializr is a convenient way to engender a Spring Boot project. We can go to the Spring Initializr site, choose a dependency management implement (either Maven or Gradle), a language (Java, Kotlin or Groovy), a packaging scheme (Jar or War), version, and dependencies, and download the project. This creates a skeleton project for us and preserves setup time so that we can concentrate on integrating business logic.

Difference between Spring MVC and Spring Boot?

Spring MVC is a project within the Spring Framework for implementing the model-view-controller design pattern. It is utilized to build dynamic (and static remotely) web pages and RESTful web services. 

Spring Boot is an opinionated way of building Java applications. Utilizing Spring Boot, you can build web applications utilizing Spring MVC as well as other technologies.

What is Spring Boot CLI? 

The Spring Boot CLI is a command-line implement that you can utilize if you opt to expeditiously develop a Spring application. It lets you run Groovy scripts, which means that you have a familiar Java-like syntax without so much boilerplate code. You can withal bootstrap an incipient project or inscribe your own command for it.

What are the build tools provided by spring boot? 

Build Tool Plugins 

  • Spring Boot Maven Plugin. 
  • Spring Boot Gradle Plugin. 
  • Spring Boot AntLib Module.
Difference between @Controller and @RestController 

The @Controller annotation has been part of the framework for a very long time.@Controller annotation designates that the annotated class is a controller. It is a specialization of @Controller and is autodetected through classpath scanning. It is typically utilized in amalgamation with annotated handler methods predicated on the @RequestMapping annotation. 

The request handling method is annotated with @ResponseBody. This annotation enables automatic serialization of the return object into the HttpResponse. 

On the other hand, 

The @RestController annotation was introduced in Spring 4.0 to simplify the engendering of RESTful web services. It's a convenience annotation that combines @Controller and @ResponseBody

The controller is annotated with the @RestController annotation, consequently, the @ResponseBody isn't required. Every request handling method of the controller class automatically serializes return objects into HttpResponse.

Why Do We Need Spring Profiles? 

Spring applications typically have a large set of such configurations that vary across environments. In such scenarios, you can use Spring profiles. Spring profiles provide a way to segregate parts of your application configuration and make it be available only in certain environments.

What is the use of @SpringBootApplication? 

Used to denote the main class of a Boot Application. This annotation combines @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations with their default attributes.

What is Spring Boot Actuator? 

Actuator brings production-ready features to our application. Monitoring our app, amassing metrics, understanding traffic, or the state of our database becomes trivial with this dependency. The main benefit of this library is that we can get production-grade tools without having to actually implement these features ourselves.

What are stereotype annotations in Java? 

Stereotype annotations are @Component, @Service, @Repository, and @Controller annotations. These annotations are used for auto-detection of beans using @ComponentScan and component-scan. The Spring stereotype @Component is the parent stereotype. The other stereotypes i.e @Service, @Repository, and @Controller are the specialization of @Component annotation.

What is @RequestMapping annotation in Spring Boot? 

The @RequestMapping annotation is used to provide routing information. It tells the Spring that any HTTP request should map to the corresponding method.

How do you handle exceptions globally in spring boot? 

Spring boot also allows us to provide customized global exception handling where we need not add try-catch block everywhere, we can create a separate class for handling exceptions and it also separates the exception handling code from business logic code.

What is the use of RestTemplate in spring boot? 

Rest Template is used to create applications that consume RESTful Web Services.

What is the use of Feign client?

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations.

What is the spring boot interceptor? 

Spring Interceptor is a concept that is rather similar to Servlet Filter. Spring Interceptor is used to intercept client requests and process them. Sometimes we want to intercept the HTTP Request and do some processing before handing it over to the controller handler methods.

What is Hystrix? 

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services, and 3rd party libraries, stop cascading failure, and enable resilience in intricate distributed systems where failure is inevitable.

What is ZUUL in Microservices? 

Zuul is a JVM-based router and server-side load balancer by Netflix. And Spring Cloud has a nice integration with an embedded Zuul proxy. 

What is Netflix Server? 

Eureka Server is an application that holds information about all client-service applications. Every Microservice will register into the Eureka server and the Eureka server knows all the client applications running on each port and IP address.

Popular posts from this blog

Learn Java 8 streams with an example - print odd/even numbers from Array and List

Java Stream API - How to convert List of objects to another List of objects using Java streams?

Registration and Login with Spring Boot + Spring Security + Thymeleaf

Java, Spring Boot Mini Project - Library Management System - Download

ReactJS, Spring Boot JWT Authentication Example

Top 5 Java ORM tools - 2024

Java - Blowfish Encryption and decryption Example

Spring boot video streaming example-HTML5

Google Cloud Storage + Spring Boot - File Upload, Download, and Delete