Spring Boot Basics Interview Questions and Answers

Master Spring Boot fundamentals with interview questions covering architecture, auto configuration, embedded servers, starters, dependency injection, application startup, annotations, and enterprise production concepts.


Introduction

Spring Boot is an opinionated framework built on top of the Spring Framework that simplifies the development of production-ready Java applications. It eliminates complex XML configurations, reduces boilerplate code, provides embedded web servers, and offers intelligent auto-configuration.

Today, most enterprise applications, cloud-native systems, REST APIs, and microservices are built using Spring Boot.

It is widely used in:

  • Banking
  • Insurance
  • Healthcare
  • E-Commerce
  • Telecommunications
  • Logistics
  • Government Systems

Spring Boot integrates seamlessly with:

  • Spring MVC
  • Spring Data JPA
  • Spring Security
  • Spring Batch
  • Spring Cloud
  • Kafka
  • RabbitMQ
  • Redis
  • Docker
  • Kubernetes

Spring Boot Architecture

flowchart LR

Client --> EmbeddedServer

EmbeddedServer --> DispatcherServlet

DispatcherServlet --> Controller

Controller --> Service

Service --> Repository

Repository --> Database

Service --> ExternalAPI

Q1. What is Spring Boot?

Answer

Spring Boot is an extension of the Spring Framework that enables developers to create standalone, production-ready applications with minimal configuration.

It provides:

  • Auto Configuration
  • Embedded Servers
  • Starter Dependencies
  • Actuator
  • External Configuration
  • Production Monitoring

Example

@SpringBootApplication
public class BankingApplication {

    public static void main(String[] args) {

        SpringApplication.run(
                BankingApplication.class,
                args);

    }

}

Advantages

  • Rapid Development
  • Less Configuration
  • Embedded Server
  • Production Ready
  • Cloud Native

Q2. Why was Spring Boot introduced?

Before Spring Boot, developers spent significant time configuring Spring applications.

Traditional Spring required:

  • XML configuration
  • Bean definitions
  • Server deployment
  • Dependency management

Spring Boot simplifies these tasks through convention over configuration.

Traditional Spring

Application

↓

XML Configuration

↓

Deploy WAR

↓

External Tomcat

Spring Boot

Application

↓

Run

↓

Embedded Tomcat

Q3. What is @SpringBootApplication?

@SpringBootApplication is a convenience annotation combining three annotations.

@SpringBootApplication

Internally it includes:

@Configuration

@EnableAutoConfiguration

@ComponentScan

Diagram

flowchart TD

SpringBootApplication --> Configuration

SpringBootApplication --> EnableAutoConfiguration

SpringBootApplication --> ComponentScan

Q4. What is Auto Configuration?

Auto Configuration automatically configures Spring beans based on:

  • Classpath dependencies
  • Existing beans
  • Application properties

Example

If spring-boot-starter-web is present,

Spring Boot automatically configures:

  • DispatcherServlet
  • Jackson
  • Embedded Tomcat
  • MVC infrastructure

No manual configuration is required.


Q5. What are Starter Dependencies?

Starter dependencies are curated dependency bundles that simplify Maven or Gradle configuration.

Examples

Starter Purpose
spring-boot-starter-web REST APIs
spring-boot-starter-data-jpa Database access
spring-boot-starter-security Security
spring-boot-starter-batch Batch processing
spring-boot-starter-actuator Monitoring
spring-boot-starter-test Testing

Example

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>
        spring-boot-starter-web
    </artifactId>
</dependency>

Q6. What is an Embedded Server?

Spring Boot packages an embedded web server inside the application.

Supported servers

  • Tomcat (default)
  • Jetty
  • Undertow

Startup Flow

flowchart LR

Application --> EmbeddedTomcat

EmbeddedTomcat --> RESTAPI

RESTAPI --> Client

Benefits

  • No WAR deployment
  • Standalone JAR
  • Easy Docker deployment

Q7. Explain the Spring Boot Startup Process.

Startup sequence

sequenceDiagram
Application->>SpringApplication: run()
SpringApplication->>Environment: Load Properties
Environment-->>SpringApplication: Ready
SpringApplication->>ApplicationContext: Create
ApplicationContext->>AutoConfiguration: Configure Beans
AutoConfiguration-->>ApplicationContext: Beans Ready
ApplicationContext->>EmbeddedServer: Start
EmbeddedServer-->>Application: Ready

Steps

  1. Load configuration.
  2. Create Environment.
  3. Create ApplicationContext.
  4. Perform component scanning.
  5. Apply auto-configuration.
  6. Create beans.
  7. Start embedded server.
  8. Application becomes ready.

Q8. What is the Spring Boot ApplicationContext?

ApplicationContext is the IoC container that manages Spring beans.

Responsibilities

  • Bean creation
  • Dependency Injection
  • Lifecycle management
  • Event publishing
  • Configuration management

Architecture

flowchart TD

ApplicationContext --> Controllers

ApplicationContext --> Services

ApplicationContext --> Repositories

ApplicationContext --> ConfigurationBeans

Q9. Spring Boot vs Spring Framework

Spring Framework Spring Boot
Requires configuration Convention-based
External server Embedded server
XML/Java configuration Auto Configuration
Manual dependency setup Starter dependencies
More setup effort Rapid development
Suitable for any Spring app Optimized for standalone apps

Spring Boot is built on top of the Spring Framework, not a replacement for it.


Q10. Spring Boot Best Practices

Keep Business Logic in Services

Controllers should only handle HTTP requests.


Use Constructor Injection

Avoid field injection.


Externalize Configuration

Use application.yml or application.properties.


Keep Controllers Lightweight

Delegate work to the service layer.


Use Layered Architecture

flowchart TD

Controller --> Service

Service --> Repository

Repository --> Database

Banking Example

flowchart LR

MobileApp --> CustomerController

CustomerController --> CustomerService

CustomerService --> CustomerRepository

CustomerRepository --> PostgreSQL

CustomerService --> NotificationService

NotificationService --> Kafka

Common Interview Questions

  • What is Spring Boot?
  • Why use Spring Boot?
  • What is @SpringBootApplication?
  • What is Auto Configuration?
  • What are Starter Dependencies?
  • What is an Embedded Server?
  • Explain the startup process.
  • What is ApplicationContext?
  • Spring vs Spring Boot?
  • Spring Boot best practices?

Quick Revision

Topic Summary
Spring Boot Production-ready Spring framework
@SpringBootApplication Main Boot annotation
Auto Configuration Automatic bean configuration
Starter Curated dependency bundle
Embedded Server Tomcat, Jetty, Undertow
ApplicationContext IoC container
Component Scan Detect Spring beans
DispatcherServlet Front controller
REST API Primary use case
Standalone JAR Default deployment model

Spring Boot Request Lifecycle

sequenceDiagram
Client->>Embedded Tomcat: HTTP Request
Embedded Tomcat->>DispatcherServlet: Route Request
DispatcherServlet->>Controller: Invoke Endpoint
Controller->>Service: Business Logic
Service->>Repository: Database Call
Repository->>Database: SQL
Database-->>Repository: Result
Repository-->>Service: Entity
Service-->>Controller: DTO
Controller-->>DispatcherServlet: Response
DispatcherServlet-->>Client: JSON Response

Production Example – Banking Application

A banking application built with Spring Boot provides APIs for account management and fund transfers.

Architecture

  • Spring Boot hosts the application using embedded Tomcat.
  • Spring MVC exposes REST endpoints.
  • Spring Data JPA accesses PostgreSQL.
  • Spring Security secures APIs with JWT.
  • Spring Kafka publishes transaction events.
  • Spring Actuator exposes health and metrics.
  • The application is packaged as a standalone JAR and deployed to Docker and Kubernetes.
flowchart LR

Internet --> ApiGateway["API Gateway"]

ApiGateway["API Gateway"] --> SpringBootApp

SpringBootApp --> PostgreSQL

SpringBootApp --> Redis

SpringBootApp --> Kafka

SpringBootApp --> Prometheus

Prometheus --> Grafana

This architecture is typical of modern enterprise microservices.


Key Takeaways

  • Spring Boot simplifies Spring application development through auto-configuration, starter dependencies, and embedded servers.
  • @SpringBootApplication combines @Configuration, @EnableAutoConfiguration, and @ComponentScan.
  • Applications are packaged as executable JARs and typically run with an embedded Tomcat server.
  • The startup process initializes the environment, application context, beans, and embedded web server automatically.
  • ApplicationContext manages bean creation, dependency injection, lifecycle, and configuration.
  • Spring Boot encourages layered architecture with Controllers, Services, and Repositories.
  • It integrates seamlessly with Spring Security, Spring Data, Spring Batch, Spring Cloud, Kafka, Docker, and Kubernetes.
  • Spring Boot is the de facto standard framework for building enterprise Java applications and microservices.