Spring Boot Interview Questions and Answers (2026 Edition)

Spring Boot questions haven't changed much in a decade — which is exactly why interviewers now probe the corners candidates skip: how auto-configuration actually works, what the annotations expand to, and how you test slices of the app. The 2026 edition, with Boot 3.x notes throughout.

1. How does auto-configuration actually work?

Answer: @EnableAutoConfiguration (inside @SpringBootApplication) loads configuration classes listed in META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. Each one is guarded by @ConditionalOn… annotations — e.g. DataSourceAutoConfiguration only activates when a JDBC driver is on the classpath and you haven't defined your own DataSource bean (@ConditionalOnMissingBean). The one-liner: "Classpath + conditions + back-off when I define my own bean." Follow-up: "How do you exclude one?" — @SpringBootApplication(exclude = DataSourceAutoConfiguration.class).

2. What does @SpringBootApplication expand to?

@SpringBootConfiguration   // marks it as a @Configuration class
@EnableAutoConfiguration   // the magic above
@ComponentScan             // scans the package of the annotated class DOWNWARD
public class ShopApplication { ... }

Answer: three annotations. The trap: @ComponentScan only scans the annotated class's package and sub-packages — which is why the main class sits at the root package. Put it in a sub-package and half your beans silently vanish.

3. What are starters, really?

Answer: a starter is just a POM — a curated dependency set plus the auto-configuration that wires it. spring-boot-starter-web pulls in Spring MVC, Jackson, validation, and an embedded Tomcat, all version-aligned by the Boot BOM. The interview point: starters exist so you never hand-manage thirty dependency versions again.

4. properties vs YAML vs @ConfigurationProperties?

// application.yml
shop:
  max-discount: 20
  supported-regions:
    - IN
    - US

// type-safe binding — prefer this over @Value sprawl
@ConfigurationProperties(prefix = "shop")
record ShopProps(int maxDiscount, List<String> supportedRegions) {}

Answer: YAML wins for hierarchical config; @ConfigurationProperties wins for type safety, validation, and IDE completion over scattered @Value("${…}"). Profiles (application-prod.yml) select per-environment values. Follow-up: "Where does config come from, in priority order?" — command-line args > env vars > profile-specific files > application.yml > defaults.

5. What is the Actuator, and what do you expose in production?

Answer: production-ready endpoints under /actuator: health, metrics, info, env. In production you expose health (liveness/readiness for Kubernetes) and metrics (Prometheus scraping) — and never env or heap dumps publicly, since they leak secrets. Custom health checks implement HealthIndicator.

6. @SpringBootTest vs @WebMvcTest vs @DataJpaTest?

Answer: slice tests. @SpringBootTest boots the whole context (slow, for integration tests); @WebMvcTest loads only the web layer with a MockMvc (fast controller tests, mock the service); @DataJpaTest loads only JPA with an in-memory DB (repository tests). The interviewer's real question: "Do you know what NOT to load?"

7. How do you change the embedded server or port?

Answer: port is server.port=8081. Swap Tomcat for Jetty/Undertow by excluding spring-boot-starter-tomcat and adding the Jetty starter — auto-configuration picks it up with zero code changes. That's the payoff of the design from question 1.

8. What shipped in Spring Boot 3.x that I should know?

  • Java 17 baseline, Jakarta EE — javax.* became jakarta.*; old libraries break until updated. The most common migration gotcha.
  • GraalVM native images — compile to a native binary: ~50ms startup, tiny memory. The trade-off: longer builds and reflection hints.
  • Observability built in — Micrometer + tracing wired by default; metrics and traces without extra setup.

9. How does a request actually flow? (the "draw it" question)

Answer: embedded Tomcat → DispatcherServlet → HandlerMapping finds your @RestController method → argument resolvers bind the request → interceptors →

In this series

  1. 50 Most Asked Java Interview Questions in 2026 — Core Java, Java 25, Spring Boot & Microservices — start here.
  2. Top 40 Java Interview Questions and Answers (2026 Edition) — the 40-question companion set.
  3. Java 17 to 21 Interview Questions: Records, Pattern Matching, Sealed Classes & More — modern language deep dive.
  4. Spring Boot Interview Questions and Answers (this post) — DI, transactions, JPA.
  5. Java Multithreading and Concurrency Interview Questions — threads, locks, virtual threads, JVM.
  6. Microservices Interview Questions for Java Developers — resilience and distributed patterns.

More: Java Interview Prep hub — the full collection of Java interview questions on JavaMakeUse.

Comments

Popular posts from this blog

What are the core classes and interfaces of hibernate 4

JSP Servlet Interview Questions For Freshers Series 1

Java Banking Finance Services and Insurance (BFSI) domain interview questions