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
- Load configuration.
- Create Environment.
- Create ApplicationContext.
- Perform component scanning.
- Apply auto-configuration.
- Create beans.
- Start embedded server.
- 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.
@SpringBootApplicationcombines@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.