Spring Boot Framework Objective Questions with Explanation
Spring Boot Framework Interview Questions with Explanation
Question 1
What is the main purpose of Spring Boot?
A. To provide a flexible and robust framework for building enterprise applications
B. To simplify the development of new Spring applications
C. To replace the Spring Framework
D. To enhance the performance of Spring applications
Answer: B. To simplify the development of new Spring applications
Explanation: Spring Boot is designed to simplify the development of new Spring applications. It does this by providing a range of default configurations and setups that allow developers to get started quickly without needing to manually configure the underlying Spring Framework.
Question 2
Which of the following annotations is used to enable Spring Boot auto-configuration?
A. @ComponentScan
B. @SpringBootApplication
C. @Configuration
D. @EnableAutoConfiguration
Answer: D. @EnableAutoConfiguration
Explanation: The @EnableAutoConfiguration annotation tells Spring Boot to automatically configure your application based on the dependencies you have added. It tries to automatically configure your Spring application based on the jar dependencies that you have added.
Question 3
What is the default embedded server used in Spring Boot?
A. Tomcat
B. Jetty
C. Undertow
D. GlassFish
Answer: A. Tomcat
Explanation: The default embedded server used in Spring Boot is Tomcat. This means that when you create a Spring Boot application, it will use Tomcat as the default web server unless you specify otherwise.
Question 4
How can you run a Spring Boot application?
A. Using the java -jar command
B. Using an IDE like IntelliJ IDEA or Eclipse
C. By using the Spring Boot Maven or Gradle plugin
D. All of the above
Answer: D. All of the above
Explanation: A Spring Boot application can be run in several ways: by using the java -jar command with the executable jar file, using an IDE like IntelliJ IDEA or Eclipse, or by using the Spring Boot Maven or Gradle plugin.
Question 5
Which file is used to configure Spring Boot application properties?
A. application.json
B. application.yml
C. application.properties
D. Both B and C
Answer: D. Both B and C
Explanation: Spring Boot allows you to configure your application using either application.yml or application.properties files. These files can be used to set various configuration properties for your Spring Boot application.
Question 6
What is the purpose of the @SpringBootApplication annotation?
A. It is a convenience annotation that adds all of the following: @Configuration, @EnableAutoConfiguration, and @ComponentScan
B. It is used to configure beans
C. It is used to enable component scanning
D. None of the above
Answer: A. It is a convenience annotation that adds all of the following: @Configuration, @EnableAutoConfiguration, and @ComponentScan
Explanation: The @SpringBootApplication annotation is a convenience annotation that combines @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations with their default attributes. It helps to reduce the boilerplate code needed to configure a Spring application.
Question 7
Which of the following is not a valid way to create a Spring Boot project?
A. Using Spring Initializr
B. Using Spring Roo
C. Using STS (Spring Tool Suite)
D. Manually configuring a Maven or Gradle project
Answer: B. Using Spring Roo
Explanation: Spring Roo is not used to create Spring Boot projects. Spring Boot projects can be created using Spring Initializr, Spring Tool Suite (STS), or by manually configuring a Maven or Gradle project.
Question 8
What does the spring-boot-starter-parent dependency provide?
A. It provides default configurations for Maven
B. It is the core dependency for all Spring Boot applications
C. It helps in setting up a basic Spring Boot application
D. It includes all the necessary libraries for Spring Boot applications
Answer: A. It provides default configurations for Maven
Explanation: The spring-boot-starter-parent dependency in a Maven project provides default configurations and dependency management for Spring Boot applications. It simplifies the setup of a Spring Boot project by inheriting default configurations.
Question 9
How do you specify a custom port for your Spring Boot application?
A. By setting the server.port property in the application.properties file
B. By setting the server.port property in the application.yml file
C. By using the --server.port command-line argument
D. All of the above
Answer: D. All of the above
Explanation: You can specify a custom port for your Spring Boot application by setting the server.port property in the application.properties or application.yml file, or by using the --server.port command-line argument when starting your application.
Question 10
Which of the following dependencies is not included in the spring-boot-starter-web dependency?
A. Spring MVC
B. Jackson
C. Hibernate Validator
D. Spring Data JPA
Answer: D. Spring Data JPA
Explanation: The spring-boot-starter-web dependency includes Spring MVC, Jackson (for JSON processing), and Hibernate Validator (for bean validation). However, it does not include Spring Data JPA, which is included in the spring-boot-starter-data-jpa dependency.
Question 11
What does the @RestController annotation do in a Spring Boot application?
A. It defines a controller and applies @ResponseBody to all methods
B. It is used to mark a class as a configuration class
C. It is used to scan for Spring components
D. It enables the auto-configuration feature of Spring Boot
Answer: A. It defines a controller and applies @ResponseBody to all methods
Explanation: The @RestController annotation is a convenience annotation that combines @Controller and @ResponseBody. It is used to define a controller where every method returns a domain object instead of a view.
Question 12
Which annotation is used to start a Spring Boot test that loads only specific beans?
A. @SpringBootTest
B. @WebMvcTest
C. @MockBean
D. @ContextConfiguration
Answer: B. @WebMvcTest
Explanation: The @WebMvcTest annotation is used for testing Spring MVC controllers. It loads only the specific beans related to web layer testing (e.g., controllers, filters) and does not start the full application context.
Question 13
How can you disable the default security configuration in a Spring Boot application?
A. By setting security.enabled to false in application.properties
B. By excluding SecurityAutoConfiguration in the @SpringBootApplication annotation
C. By overriding the configure method in a custom security configuration class
D. By setting spring.security.enabled to false in application.yml
Answer: B. By excluding SecurityAutoConfiguration in the @SpringBootApplication annotation
Explanation: You can disable the default security configuration in a Spring Boot application by excluding SecurityAutoConfiguration in the @SpringBootApplication annotation like this: @SpringBootApplication(exclude = { SecurityAutoConfiguration.class }).
Question 14
Which of the following is not a valid method to customize the Spring Boot banner?
A. Using banner.txt file in the resources folder
B. Setting the spring.banner.location property
C. Using the Banner interface and setting it in SpringApplication
D. Editing the application.properties file directly
Answer: D. Editing the application.properties file directly
Explanation: Customizing the Spring Boot banner can be done using a banner.txt file, by setting the spring.banner.location property, or by implementing the Banner interface. Directly editing the application.properties file does not customize the banner itself.
Question 15
What is the purpose of the @SpringBootTest annotation?
A. To provide a standard way of writing integration tests in Spring Boot
B. To run unit tests in Spring Boot applications
C. To configure Spring Boot beans for testing purposes
D. To enable auto-configuration for Spring Boot applications
Answer: A. To provide a standard way of writing integration tests in Spring Boot
Explanation: The @SpringBootTest annotation is used for integration testing in Spring Boot. It provides a standard way to set up the application context and run tests against it.
Question 16
Which property would you use to set the logging level for a specific package in a Spring Boot application?
A. logging.level.root
B. logging.level.package
C. logging.level.<package-name>
D. logging.level.class
Answer: C. logging.level.<package-name>
Explanation: To set the logging level for a specific package in a Spring Boot application, you use the logging.level.<package-name> property in the application.properties or application.yml file.
Question 17
Which dependency is required for using Thymeleaf templates in a Spring Boot application?
A. spring-boot-starter-web
B. spring-boot-starter-thymeleaf
C. spring-boot-starter-data-jpa
D. spring-boot-starter-security
Answer: B. spring-boot-starter-thymeleaf
Explanation: The spring-boot-starter-thymeleaf dependency is required for using Thymeleaf templates in a Spring Boot application. It includes all necessary libraries for integrating Thymeleaf with Spring Boot.
Question 18
What is the use of the @SpringBootApplication annotation?
A. To enable component scanning and auto-configuration
B. To create a Spring Boot application
C. To enable configuration classes
D. To start an embedded server
Answer: A. To enable component scanning and auto-configuration
Explanation: The @SpringBootApplication annotation is a combination of @Configuration, @EnableAutoConfiguration, and @ComponentScan. It enables component scanning and auto-configuration in a Spring Boot application.
Question 19
Which annotation is used to exclude a class from being auto-configured?
A. @Exclude
B. @EnableAutoConfiguration
C. @AutoConfigureExclude
D. @Configuration
Answer: C. @AutoConfigureExclude
Explanation: The @AutoConfigureExclude annotation is used to exclude specific classes from being auto-configured in a Spring Boot application.
Question 20
Which starter would you include to use Spring Data JPA in your Spring Boot application?
A. spring-boot-starter-web
B. spring-boot-starter-jpa
C. spring-boot-starter-data-jpa
D. spring-boot-starter-data
Answer: C. spring-boot-starter-data-jpa
Explanation: To use Spring Data JPA in your Spring Boot application, you would include the spring-boot-starter-data-jpa dependency. This starter provides all necessary dependencies for Spring Data JPA.
Question 21
Which of the following is the correct way to disable a specific auto-configuration class in Spring Boot?
A. Using @SpringBootApplication(exclude = { ClassName.class })
B. Using @Configuration(exclude = { ClassName.class })
C. Setting spring.autoconfigure.exclude property in application.properties
D. Both A and C
Answer: D. Both A and C
Explanation: You can disable a specific auto-configuration class in Spring Boot either by using the exclude attribute of the @SpringBootApplication annotation or by setting the spring.autoconfigure.exclude property in application.properties.
Question 22
How do you configure a Spring Boot application to run with a specific profile?
A. By setting the spring.profiles.active property in application.properties
B. By using the --spring.profiles.active command-line argument
C. By setting the SPRING_PROFILES_ACTIVE environment variable
D. All of the above
Answer: D. All of the above
Explanation: You can configure a Spring Boot application to run with a specific profile by setting the spring.profiles.active property in application.properties, using the --spring.profiles.active command-line argument, or by setting the SPRING_PROFILES_ACTIVE environment variable.
Question 23
Which annotation is used to bind external configurations to a POJO in Spring Boot?
A. @ConfigurationProperties
B. @Value
C. @PropertySource
D. @Component
Answer: A. @ConfigurationProperties
Explanation: The @ConfigurationProperties annotation is used to bind external configurations (e.g., from application.properties or application.yml) to a POJO in Spring Boot. It allows you to map entire property trees into Java objects.
Question 24
What is the purpose of the @ConditionalOnProperty annotation?
A. To conditionally include beans based on the presence of a property
B. To define a property in application.properties
C. To enable a profile based on a property
D. To specify a required property for a bean
Answer: A. To conditionally include beans based on the presence of a property
Explanation: The @ConditionalOnProperty annotation is used to conditionally include or exclude beans based on the presence and value of a specific property. It is often used in auto-configuration classes.
Question 25
Which annotation is used to define a Spring Boot test that uses a specific configuration?
A. @SpringBootTest
B. @ContextConfiguration
C. @TestConfiguration
D. @Import
Answer: B. @ContextConfiguration
Explanation: The @ContextConfiguration annotation is used to define a Spring Boot test that uses a specific configuration. It allows you to specify which configuration classes or XML files should be used to load the application context for the test.
Question 26
What is the default scope of a bean in a Spring Boot application?
A. Prototype
B. Request
C. Session
D. Singleton
Answer: D. Singleton
Explanation: In a Spring Boot application, the default scope of a bean is singleton. This means that a single instance of the bean is created and shared across the entire application context.
Question 27
Which property can be used to change the logging level for Hibernate in a Spring Boot application?
A. hibernate.logging.level
B. logging.level.org.hibernate
C. hibernate.logging
D. logging.level.hibernate
Answer: B. logging.level.org.hibernate
Explanation: To change the logging level for Hibernate in a Spring Boot application, you can set the logging.level.org.hibernate property in application.properties or application.yml.
Question 28
How can you include additional configurations for an embedded Tomcat server in Spring Boot?
A. By creating a TomcatConfiguration class and annotating it with @Configuration
B. By implementing the EmbeddedServletContainerCustomizer interface
C. By using the ServerProperties class
D. By implementing the WebServerFactoryCustomizer interface
Answer: D. By implementing the WebServerFactoryCustomizer interface
Explanation: To include additional configurations for an embedded Tomcat server in Spring Boot, you can implement the WebServerFactoryCustomizer<TomcatServletWebServerFactory> interface and override the customize method to configure the server.
Question 29
What is the purpose of the @SpringBootConfiguration annotation?
A. It is a meta-annotation that combines @Configuration and @EnableAutoConfiguration
B. It is used to mark a configuration class
C. It is a synonym for @SpringBootApplication
D. It is used to exclude specific configurations
Answer: B. It is used to mark a configuration class
Explanation: The @SpringBootConfiguration annotation is used to mark a class as a configuration class for a Spring Boot application. It is a specialized version of the @Configuration annotation.
Question 30
Which of the following is not a Spring Boot starter dependency?
A. spring-boot-starter-logging
B. spring-boot-starter-mail
C. spring-boot-starter-aop
D. spring-boot-starter-jdbc
Answer: A. spring-boot-starter-logging
Explanation: There is no spring-boot-starter-logging starter dependency in Spring Boot. Logging is automatically configured by Spring Boot, and you can use other starters like spring-boot-starter-web, spring-boot-starter-mail, spring-boot-starter-aop, and spring-boot-starter-jdbc.
We hope that you must have found this exercise quite useful. If you wish to join online courses on Networking Concepts, Machine Learning, Angular JS, Node JS, Flutter, Cyber Security, Core Java and Advance Java, Power BI, Tableau, AI, IOT, Android, Core PHP, Laravel Framework, Core Java, Advance Java, Spring Boot Framework, Struts Framework training, feel free to contact us at +91-9936804420 or email us at aditya.inspiron@gmail.com.
Happy Learning
Team Inspiron Technologies
Leave a comment