Loading ...

Spring Boot Interview Questions & Answers (2025)

Spring Boot is widely used for building enterprise-grade Java applications and microservices. This guide provides detailed explanations, examples, and ready-to-use code snippets for 30 frequently asked interview questions.



1. What is Spring Boot?

Explanation:
Spring Boot is a framework built on top of Spring to simplify Spring application development. It provides auto-configuration, embedded servers, starter dependencies, and a convention-over-configuration approach.

Features:

  • Auto-configuration

  • Embedded Tomcat, Jetty, or Undertow servers

  • Starter dependencies for easy project setup

  • Microservice-ready architecture

Example:

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }

2. Difference between Spring and Spring Boot

FeatureSpringSpring Boot
SetupComplex, XML-basedAuto-configured, annotation-based
ServerRequires external serverEmbedded server (Tomcat, Jetty)
DeploymentWAR fileJAR file (standalone)
FocusGeneral-purpose frameworkRapid microservice development

3. What are Spring Boot Starters?

Starters are pre-configured dependency sets to simplify dependency management.

Example:

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

Adds everything needed for building REST APIs: Spring MVC, Jackson, and embedded Tomcat.


4. Explain Spring Boot Auto-Configuration

Spring Boot automatically configures beans based on the classpath. This reduces manual configuration.

Diagram (text-based):

Dependencies -> AutoConfiguration -> Bean Creation -> Application Ready

Example:

@Bean public RestTemplate restTemplate() { return new RestTemplate(); }

5. What is @SpringBootApplication?

@SpringBootApplication is a meta-annotation combining:

  • @Configuration – Marks class as a configuration

  • @EnableAutoConfiguration – Enables auto-configuration

  • @ComponentScan – Scans components automatically

Example:

@SpringBootApplication public class MyApplication {}

6. Difference between @Component, @Service, @Repository, @Controller

AnnotationUsage
@ComponentGeneric bean definition
@ServiceBusiness/service layer
@RepositoryDAO layer, handles DB exceptions
@ControllerHandles HTTP requests

7. What is Spring Boot Actuator?

Explanation:
Provides production-ready features like monitoring, metrics, and health checks.

Example:

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

Access health endpoint:

http://localhost:8080/actuator/health

8. How to Externalize Configuration in Spring Boot

Spring Boot supports application.properties or application.yml.

Example:

server.port=9090 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=root

9. What is @Value Annotation?

Injects values from configuration files.

@Value("${server.port}") private int serverPort;

10. Difference between @RestController and @Controller

AnnotationUsage
@ControllerReturns views (JSP, Thymeleaf)
@RestControllerReturns JSON/XML directly

11. How to handle exceptions in Spring Boot

Explanation: Use @ControllerAdvice and @ExceptionHandler to handle global exceptions.

@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<String> handleException(Exception e) { return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } }

12. What is Spring Boot DevTools?

Provides hot reload and automatic restart for development.

Dependency:

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

13. What are Profiles in Spring Boot?

Profiles allow environment-specific configurations.

Example:

# application-dev.properties server.port=8081

Activate:

spring.profiles.active=dev

14. Spring Boot Security

Provides authentication and authorization using spring-boot-starter-security.

@Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and().httpBasic(); }

15. Difference between @EnableAutoConfiguration and @SpringBootApplication

  • @EnableAutoConfiguration: Enables auto-configuration only

  • @SpringBootApplication: Combines auto-configuration, component scan, and configuration


16. Embedded Server in Spring Boot

Spring Boot provides embedded servers, so no WAR deployment needed.

Run standalone app:

java -jar myapp.jar

17. Spring Boot CLI

Run Spring Boot apps from the command line using Groovy scripts:

spring run hello.groovy

18. Connect Spring Boot to a Database

Example: MySQL with JPA

spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=root spring.jpa.hibernate.ddl-auto=update
@Entity public class User { @Id @GeneratedValue private Long id; private String name; }

19. Difference between @Entity and @Table

AnnotationUsage
@EntityMarks a class as JPA entity
@TableMaps entity to specific table

20. Spring Boot JPA Repositories

Automatically implements CRUD operations.

public interface UserRepository extends JpaRepository<User, Long> {}

21. Caching in Spring Boot

@EnableCaching @SpringBootApplication public class MyApp {} @Cacheable("users") public User getUserById(Long id) { ... }

22. Scheduling in Spring Boot

@EnableScheduling @SpringBootApplication public class MyApp {} @Scheduled(fixedRate = 5000) public void runTask() { System.out.println("Task executed every 5 seconds"); }

23. Testing in Spring Boot

@SpringBootTest class MyAppTests { @Test void contextLoads() {} }

24. DevTools vs LiveReload

  • DevTools: Auto-restarts application

  • LiveReload: Refreshes browser automatically


25. Spring Boot Messaging

Supports Kafka and RabbitMQ.

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

26. @RequestParam vs @PathVariable

AnnotationUsage
@RequestParamQuery parameters
@PathVariableURL path variables

27. File Upload

@PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { // handle file }

28. Spring Boot with Thymeleaf

@Controller public class MyController { @GetMapping("/home") public String home(Model model) { model.addAttribute("message", "Hello Spring Boot"); return "home"; // home.html } }

29. Spring Boot Starter POMs

  • spring-boot-starter-web – REST API

  • spring-boot-starter-data-jpa – Database access

  • spring-boot-starter-security – Security


30. Packaging Spring Boot Applications

  • JAR: Standalone executable

mvn clean package java -jar target/myapp.jar

  • WAR: Deployable on external server

✍️ By Ashish | 2025-10-21T09:01:51.481Z

Call Our Course Advisors

IND: +91-98018 30173 / +91-70429 28331

US: +1-252 490 1033

UK: +44-121 3871751