Auto-configuration is a feature in Spring Boot that automatically sets up beans and configurations based on the libraries and settings found in the project, reducing the need for manual setup.
Click to reveal answer
intermediate
How does Spring Boot know which auto-configuration classes to apply?
Spring Boot uses the spring.factories file inside the spring-boot-autoconfigure module to list all auto-configuration classes. It loads these classes conditionally based on the presence of certain classes or properties.
Click to reveal answer
intermediate
What role do @Conditional annotations play in auto-configuration?
Annotations like @ConditionalOnClass or @ConditionalOnProperty tell Spring Boot to apply auto-configuration only if certain classes exist or specific properties are set, making configuration smart and flexible.
Click to reveal answer
intermediate
How can you disable a specific auto-configuration in Spring Boot?
You can disable an auto-configuration by using @SpringBootApplication(exclude = {AutoConfigClass.class}) or by setting spring.autoconfigure.exclude=AutoConfigClass in application.properties.
Click to reveal answer
beginner
Why is auto-configuration helpful for beginners?
Auto-configuration saves beginners time by setting up common configurations automatically. It lets them focus on writing business logic instead of boilerplate setup.
Click to reveal answer
What file lists all auto-configuration classes in Spring Boot?
Aspring.factories
Bapplication.properties
Cpom.xml
DAutoConfig.java
✗ Incorrect
Spring Boot uses the spring.factories file to list auto-configuration classes.
Which annotation is used to apply auto-configuration only if a class is present?
A@ConditionalOnProperty
B@ConditionalOnClass
C@EnableAutoConfiguration
D@SpringBootApplication
✗ Incorrect
@ConditionalOnClass checks if a class is present before applying configuration.
How can you exclude an auto-configuration class in Spring Boot?
ARemove it from spring.factories
BDelete the class file
CUse @SpringBootApplication(exclude = ...)
DSet spring.main.enabled=false
✗ Incorrect
You exclude auto-configuration classes using the exclude attribute in @SpringBootApplication.
Auto-configuration in Spring Boot is mainly designed to:
AForce manual configuration
BGenerate UI components
CDisable all configurations
DAutomatically configure beans based on classpath
✗ Incorrect
Auto-configuration sets up beans automatically based on what it finds in the classpath.
Which property can be used to disable auto-configuration in application.properties?
Aspring.autoconfigure.exclude
Bspring.main.enabled
Cspring.boot.disable
Dspring.config.ignore
✗ Incorrect
spring.autoconfigure.exclude lists auto-configuration classes to disable.
Explain how Spring Boot decides which auto-configuration classes to apply during startup.
Think about how Spring Boot checks the environment and dependencies before configuring.
You got /4 concepts.
Describe how you can customize or disable auto-configuration in a Spring Boot project.
Consider both code annotations and configuration files.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of Spring Boot's auto-configuration feature?
easy
A. To disable all default Spring features
B. To require manual configuration of all beans and settings
C. To force the use of XML configuration files
D. To automatically set up common configurations based on project dependencies
Solution
Step 1: Understand auto-configuration role
Auto-configuration helps by setting up default configurations automatically when certain dependencies are present.
Step 2: Compare options
Options A, B, and D contradict the purpose of auto-configuration, which is to reduce manual setup, not increase it or disable features.
Final Answer:
To automatically set up common configurations based on project dependencies -> Option D
Quick Check:
Auto-configuration = automatic setup [OK]
Hint: Auto-configuration means less manual setup [OK]
Common Mistakes:
Thinking auto-configuration disables features
Assuming all configuration must be manual
Confusing auto-configuration with XML config
2. Which annotation enables Spring Boot's auto-configuration in a main application class?
easy
A. @SpringBootApplication
B. @EnableAutoConfig
C. @AutoConfigEnabled
D. @ConfigurationAuto
Solution
Step 1: Identify the correct annotation
@SpringBootApplication is a meta-annotation that includes @EnableAutoConfiguration, enabling auto-configuration.
Step 2: Verify other options
Options B, C, and D are not valid Spring Boot annotations and will cause errors.
Final Answer:
@SpringBootApplication -> Option A
Quick Check:
@SpringBootApplication enables auto-config [OK]
Hint: Use @SpringBootApplication for auto-config [OK]
Common Mistakes:
Using non-existent annotations
Forgetting @SpringBootApplication on main class
Confusing with @Configuration only
3. Given this Spring Boot application snippet, what will happen if spring-boot-starter-web is on the classpath?
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
medium
A. Spring Boot auto-configures a web server and MVC setup
B. No web server is configured automatically
C. Application fails to start due to missing annotations
D. Only a command-line runner is configured
Solution
Step 1: Check classpath dependency effect
Presence of spring-boot-starter-web triggers auto-configuration of embedded web server and MVC components.
Step 2: Analyze application code
The main class is annotated with @SpringBootApplication, enabling auto-configuration which activates for web components due to the starter-web dependency.
Final Answer:
Spring Boot auto-configures a web server and MVC setup -> Option A
Quick Check:
Web starter on classpath = web auto-config [OK]
Hint: Web starter triggers web server auto-config [OK]
Common Mistakes:
Ignoring the effect of dependencies on auto-config
Assuming no server without explicit config
Forgetting @SpringBootApplication annotation
4. What is the likely cause of this error in a Spring Boot app?
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
// Error: No qualifying bean of type 'DataSource' available
medium
A. Incorrect main method signature
B. Auto-configuration is disabled by default
C. Missing database driver dependency causing auto-config to fail
D. Spring Boot does not support DataSource auto-configuration
Solution
Step 1: Understand DataSource error
Spring Boot tries to auto-configure a DataSource but fails if no driver dependency is found.
Step 2: Check other options
Main method is correct, auto-configuration is enabled by default, and Spring Boot supports DataSource auto-config.
Final Answer:
Missing database driver dependency causing auto-config to fail -> Option C
Quick Check:
Missing driver = DataSource bean error [OK]
Hint: Add DB driver to fix DataSource bean error [OK]
Common Mistakes:
Assuming main method is wrong
Thinking auto-config is off by default
Believing Spring Boot lacks DataSource support
5. You want to disable Spring Boot's auto-configuration for JPA but keep others enabled. Which is the correct way to do this?
hard
A. Remove all dependencies except JPA starter
B. Add @SpringBootApplication(exclude = JpaAutoConfiguration.class) on main class
C. Set spring.autoconfigure.enabled=false in application.properties
D. Delete the spring.factories file from the jar
Solution
Step 1: Identify how to exclude specific auto-config
Spring Boot allows excluding specific auto-config classes using the exclude attribute on @SpringBootApplication.
Step 2: Evaluate other options
Removing dependencies disables features but is not selective; disabling all auto-config is too broad; deleting spring.factories breaks the framework.
Final Answer:
Add @SpringBootApplication(exclude = JpaAutoConfiguration.class) on main class -> Option B
Quick Check:
Exclude specific auto-config via annotation [OK]
Hint: Use exclude attribute on @SpringBootApplication [OK]
Common Mistakes:
Disabling all auto-config instead of one
Removing dependencies instead of excluding config
Modifying internal Spring Boot files
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.