Top 30+ Spring Boot and Microservices Interview questions for Freshers

Related Courses

Becoming a proficient Spring Boot and Microservices developer requires a deep understanding of how these technologies empower the creation of scalable, efficient, and modular applications. Spring Boot serves as a robust framework for simplifying Java development, while Microservices architecture allows for building and managing complex systems as a collection of independent, loosely-coupled services.

Why Invest in Spring Boot and Microservices?

  • Proven Industry Standard: Spring Boot and Microservices have emerged as the leading technologies for developing enterprise-level applications. They are widely adopted by top companies for creating systems that are both reliable and capable of scaling effortlessly to meet growing demands.
  • Rich Features and Toolsets: Spring Boot streamlines application development with features like automatic configuration, embedded servers, and dependency management, enabling developers to focus on building functionality. Microservices architecture enhances this by promoting modular design, where services can be developed, deployed, and scaled independently, leading to more efficient and maintainable systems.
  • Stay Ahead in a Competitive Market: With the increasing adoption of cloud-native and distributed architectures, expertise in Spring Boot and Microservices is highly sought after. These technologies enhance the agility, performance, and scalability of applications, providing you with a significant edge in the tech job market.
  • Unmatched Flexibility: The combination of Spring Boot and Microservices offers unparalleled flexibility in application development. Whether you’re building lightweight APIs or large-scale, distributed systems, mastering these technologies equips you to create resilient, scalable applications that can adapt to the evolving needs of modern enterprises.

By mastering Spring Boot and Microservices, you’ll not only gain a solid foundation in modern Java application development but also position yourself as a key player in any team, capable of delivering cutting-edge solutions that drive business success.

Here are some Top 30+ Spring Boot and Microservices Interview Questions for Freshers:

  1. What is Spring Boot?
    Spring boot is a java based Spring framework to make it easy to develop stand-alone(build micro services) application. Most of the spring boot applications need minimal configuration. It has auto-configuration and embedded application server support like tomcat, jetty, etc.

  2. How Spring boot differ from Spring?
    Spring frame work contains manual configuration but Spring boot having auto-configuration and Spring requires external server/container where as Spring boot having Stand-alone application with embedded server.

    Spring boot having In-memory database where as Spring requires external database.

  3. What are the advantages of Spring Boot?

    • It requires minimum configuration.

    • Easy to understand and develop spring application

    • It increases productivity and reduce development time.

    • It offers an easy way to create Spring-based applications using Java or Groovy.

    • Avoid complex XML configurations and only a few annotations are required to do the configuration.

  4. What are the features of Spring Boot?

    • Create stand-alone using Spring applications

    • Provide opinionated 'starter' dependencies to simplify your build configuration

    • No need to required WAR file to deploy application into Embed Tomcat, Jetty.

    • Automatically configure Spring and 3rd party libraries whenever possible

    • Provide production-ready features such as metrics, health checks, and externalized configuration

    • Absolutely no code generation and no requirement for XML configuration

  5. What are the Key components of Spring Boot?

    • auto-configuration.

    • starter POMs.

    • CLI.

    • Actuators.

  6. What are the Spring Boot Annotations?
    Some Important Spring boot Annotations

    • @Conditional

    • @EnableAutoConfiguration

    • @SpringBootApplication

    • @AutoConfiguration

    • @EnableCaching

  7. What is Spring Initializr?
    Spring Initializr is used to create new or skeleton of Spring Boot project or application
    Steps to create Spring project using Spring Initializr

    Go to https://start.spring.io and launch Spring Initializr.

    choose a dependency management tool (either Maven or Gradle), a language (Java, Kotlin or Groovy), a packaging scheme (Jar or War), version and dependencies

    Once all of the details are entered, select the Generate Project button to generate and download a Spring Boot project. Following that, unzip the downloaded zip file and transfer it into your preferred IDE.

    Next open Eclipse and import the file.

    Select File -> Import -> Existing Maven Project in Eclipse. On the next page, navigate to or type in the path to the folder where you extracted the zip file. Maven will take some time to download all the dependencies and initialize the project after you select Finish.

  8. What are the properties of Spring Boot?
    Spring Boot provides various properties that can be configured in the application.properties file and it contains default values.

    Spring Boot has many properties that can be used to configure the behavior of the application and commonly commonly used properties in Spring Boot include spring.datasource.url, server.port, spring.profiles.active etc.

  9. How to disable Specific Auto-Configuration?
    By using @EnableAutoConfiguration(exclude = .class file) annotation to disable Auto-Configuration.

    For example we create a class named as SpringTestApplication, so the following annotation to disable Specific Auto-Configuration.

    @EnableAutoConfiguration(exclude = SpringTestApplication.class).

  10. How does spring boot work?
    Spring boot works automatic configuration of your application based on dependencies, based on development need to add specific annotations. Spring boot contains mainly @SpringBootApplication annotation and main method to run application. 

    By using @ Configuration annotation which calls all the beans in the classpath and initializes those classes.

  11. What is thyme leaf?
    Thyme leaf is a popular templating engine used in Spring Boot applications for build dynamic web pages. Moreover, it is humanly readable and developers can use it to create templates that can be rendered in HTML.

  12. What are the Spring boot Starters are available?
    Mostly used Spring boot starters

    • spring-boot-starter: core starter, including auto-configuration support, logging and YAML

    • spring-boot-starter-aop: for aspect-oriented programming with Spring AOP and AspectJ

    • spring-boot-starter-data-jpa: for using Spring Data JPA with Hibernate

    • spring-boot-starter-security: for using Spring Security

    • spring-boot-starter-test: for testing Spring Boot applications

    • spring-boot-starter-web: for building web, including RESTful, applications using Spring MVC

  13. What is the starter dependency of the Spring boot module?
    Mostly used Spring boot starter dependencies are

    • Security starter.

    • Data JPA starter.

    • Web starter.

    • Test Starter.

    • Mail starter.

    • Thymeleaf starter

  14. How to use thyme leaf?
    In implementation we use Thymeleaf in a Spring Boot application you should include the thymeleaf-spring-boot-starter dependency in POM.xml file of your project.

    The following dependency add to your project to implement Thymeleaf.

    • <dependency> 

    • <groupId>org.springframework.boot</groupId> 

    • <artifactId>spring-boot-starter-thymeleaf</artifactId> 

    • </dependency>

  15. How @SpringBootApplication annotation works internally?
    The @SpringBootApplication annotation is equivalent to using @Configuration, @EnableAutoConfiguration, and @ComponentScan with their default attributes. Spring Boot enables the developer to use a single annotation instead of using multiple.  

    @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan

  16. What is @RestController annotation in Spring Boot?
    @RestController is a Spring Boot annotation and it is a combination of @Controller and @ResponseBody, used to create RESTful web services. It converts the response to JSON or XML.

  17. What are the key dependencies of Spring Boot?
    Most impotant key dependencies are

    • spring-boot-maven-plugin

    • spring-boot-starter-test

    • spring-boot-starter-parent

    • Spring-boot-starter-web

    • spring-boot-starter-security

    • spring-boot-starter-actuator

  18. What is the difference between @RestController and @Controller in Spring Boot?
    @Controller class is uesed to Map of the model object to view or template and make it readable format but @RestController simply returns the object and object data is directly written in HTTP response as JSON or XML.

  19. What is Spring Actuator?
    Spring actuator is an additional feature of Spring that helps you to monitor and manage your application when you push it to production.

  20. How to enable Actuator in Spring boot application?
    By using spring-boot-starter-actuator dependency in pom.xml to enable actuator in Spring boot application.

    • <dependency>

    • <groupId> org.springframework.boot</groupId>

    • <artifactId> spring-boot-starter-actuator </artifactId>

    • </dependency>

  21. How to Change the Default Port in Spring Boot?
    There are many ways to change default port in spring boot

    • Using a properties file – We can define this in an application.properties (or application.yml) file using the property server.port.

    • Programmatically – In our main @SpringBootApplication class, we can set the server.port on the SpringApplication instance.

    • Using the command line – When running the application as a jar file, we can set the server.port as a java command argument.

  22. List what are the advantages and ways to load the YAML file instead of the properties file in the Spring Boot application.
    YAML is an acronym for “YAML Ain’t Markup language” and has the following properties:

    • Human-friendly, provide more clarity

    • Suitable for hierarchical data configuration

    • Support for enhancing maps, lists, and scalar types.

    • There are two classes from the spring framework that extend YamlProcessor,

    • that are used to load YAML documents.

    • YamlPropertiesFactoryBean class can load YAML as properties.

    • YamlMapFactoryBean class will load YAML as Map

  23. What are the Difference between RequestMapping and GetMapping?
    RequestMapping used to configure base path and not for any further levels. @GetMapping is used to overcome drawbacks of @RequestMapping.

    @RequestMapping is class level annotation wher as @GetMapping uses get mapping annotation rather than requestmapping.

  24. What are actuator enpoints?
    Actuator endpoints allow developers to monitor and interact with the application. There are built-in endpoints already available as well as one can create customized endpoints. We can enable or disable these endpoints as per our needs.

  25. What is List actuator provided endpoints for monitoring Spring boot application?
    The list of Actuator endpoints for Spring Boot are:

    • Beans

    • Configprops

    • Health

    • Httptrace

    • Heapdump

    • Threaddump

    • Mapping

    • Info

    • Shutdown

  26. How to enable debugging log in spring boot application?
    Spring boot enable debug logging feature will display useful information related to Spring boot container initialization on a console, and check which beans have been created using which configuration.

    The following are the options to enable logging in Spring boot application.

    Set debug=true or trace=true in application.properties
    OR
    Set debug=true in application.yml file
    OR
    pass parameter java -jar demo.jar –debug before starting the application using jar command.

  27. What are the steps to deploy the Spring Boot application as a WAR?
    Step 1: Add plugin in pom.xml as follows
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    Step 2: The packaging element in pom.xml must be set to war to build a WAR file as
    <packaging>war</packaging>

  28. What are the steps to deploy the Spring Boot application as a JAR?
    Step 1: Add plugin in pom.xml as follows
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    Step 2: The packaging element in pom.xml must be set to jar to build a JAR file as
    <packaging>jar</packaging>

  29. What is a shutdown in the actuator?
    A shutdown is an endpoint that helps application to be shut down properly. This feature is not enabled by default.
    However, you can use it by setting command: management.endpoint.shutdown.enabled=true in your application.properties file.

  30. How do you Add filter to an application?
    There are three ways to add filter to Spring Boot application:

    • Using FilterRegistrationBean.

    • By implementing Filter interface.

    • Using MVC controller.

  31. What is @pathVariable?
    @PathVariable annotation helps you to extract information from the URI directly.By defining placeholders in the request mapping URL, you can bind those placeholders to method parameters annotated with @PathVariable.
    Example:
    @RestController
    @RequestMapping("/students")
    public class NIT {
        @GetMapping("/{studentId}")
        public ResponseEntity<User> getStudentDetails(@PathVariable Long studentId) {
            return ResponseEntity.ok(student);
        }
    }

  32. What is @RequestParam?
    @RequestParam annotation enables you to extract data from the query parameters in the request URL.
    Example:
    @RestController
    @RequestMapping("/students")
    public class NIT {
        @GetMapping("/search")
        public ResponseEntity<List<Student>> searchUsers(@RequestParam("name") String name) {
            return ResponseEntity.ok(students);
        }
    }

  33. What is the difference between @PathVariable and @RequestParam?
    @RequestParam is used to capture query parameters or form parameters from the URL, while @PathVariable is used to capture values from the URL path.

  34. What is MicroServices?
    Microservice is a architecture is approach to software development application divided into small independent services that communicate with other well defined APIs.
    Microservices architectures make applications easier to scale and faster to develop, enabling innovation and accelerating time-to-market for new features.
    Microservice architecture is provides loosely coupled services that can be independently deployed and maintenance.

Scope @ NareshIT:

NareshIT's Spring Boot and Microservices Online Training program delivers comprehensive, hands-on experience in modern backend technologies, equipping you with the expertise to develop scalable, cloud-native applications.

  • Practical Projects: Immerse yourself in real-world applications through phase-end and capstone projects, where you’ll design and deploy microservices architectures, gaining valuable, real-time development experience.

  • Industry-Expert Instructors: Benefit from the knowledge of experienced professionals, with a curriculum that reflects the most current trends and best practices in Spring Boot and Microservices.

  • End-to-End Learning: The program offers a deep dive into microservices development, covering everything from conceptual design to deployment using Spring Boot, ensuring you’re well-prepared to build robust, scalable applications.

  • Certification of Achievement: Upon completing the course, you'll receive a prestigious industry-recognized certificate, affirming your skills and proficiency in Spring Boot and Microservices development.