Bird
Raised Fist0
Spring Bootframework~20 mins

How auto-configuration works in Spring Boot - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Spring Boot Auto-Configuration Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What triggers Spring Boot's auto-configuration?
In Spring Boot, what causes the auto-configuration classes to be applied during application startup?
AAdding @ComponentScan on any configuration class
BPresence of @EnableAutoConfiguration or @SpringBootApplication annotation on the main class
CManually registering beans in the application context
DUsing @ConfigurationProperties on a POJO
Attempts:
2 left
💡 Hint
Think about which annotation bundles auto-configuration in Spring Boot.
❓ component_behavior
intermediate
2:00remaining
What happens if a required class is missing for auto-configuration?
Consider an auto-configuration class that requires a specific library class to be present on the classpath. What happens if that class is missing when Spring Boot starts?
AThe auto-configuration class is skipped and not applied
BSpring Boot throws a ClassNotFoundException and fails to start
CThe auto-configuration applies but logs a warning
DThe application runs but with default settings ignoring the missing class
Attempts:
2 left
💡 Hint
Auto-configuration classes often use conditional checks on class presence.
📝 Syntax
advanced
2:00remaining
Identify the correct conditional annotation for auto-configuration
Which annotation should be used on an auto-configuration class to apply it only if a specific bean is missing in the context?
A@ConditionalOnProperty
B@ConditionalOnBean
C@ConditionalOnClass
D@ConditionalOnMissingBean
Attempts:
2 left
💡 Hint
Think about the condition that checks absence of a bean.
🔧 Debug
advanced
2:00remaining
Why is my custom configuration ignored by Spring Boot auto-configuration?
You created a custom configuration class annotated with @Configuration and @ConditionalOnMissingBean for a DataSource bean. However, your configuration is ignored and the default DataSource from auto-configuration is used. What is the likely cause?
AYour configuration class is not in a package scanned by Spring Boot
BSpring Boot always prefers auto-configuration over user configurations
CYou must use @Primary on your DataSource bean to override auto-configuration
DYou forgot to add @EnableAutoConfiguration on your class
Attempts:
2 left
💡 Hint
Check if Spring Boot can find your configuration class.
❓ lifecycle
expert
3:00remaining
Order of auto-configuration and user configuration application
During Spring Boot startup, in what order are auto-configuration classes and user-defined @Configuration classes applied?
ABoth are applied simultaneously without guaranteed order
BAuto-configuration classes override user-defined configurations always
CUser-defined @Configuration classes are applied after auto-configuration classes
DAuto-configuration classes are applied after user-defined @Configuration classes
Attempts:
2 left
💡 Hint
Think about how Spring Boot allows users to override defaults.

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

  1. Step 1: Understand auto-configuration role

    Auto-configuration helps by setting up default configurations automatically when certain dependencies are present.
  2. 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.
  3. Final Answer:

    To automatically set up common configurations based on project dependencies -> Option D
  4. 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

  1. Step 1: Identify the correct annotation

    @SpringBootApplication is a meta-annotation that includes @EnableAutoConfiguration, enabling auto-configuration.
  2. Step 2: Verify other options

    Options B, C, and D are not valid Spring Boot annotations and will cause errors.
  3. Final Answer:

    @SpringBootApplication -> Option A
  4. 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

  1. Step 1: Check classpath dependency effect

    Presence of spring-boot-starter-web triggers auto-configuration of embedded web server and MVC components.
  2. 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.
  3. Final Answer:

    Spring Boot auto-configures a web server and MVC setup -> Option A
  4. 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

  1. Step 1: Understand DataSource error

    Spring Boot tries to auto-configure a DataSource but fails if no driver dependency is found.
  2. Step 2: Check other options

    Main method is correct, auto-configuration is enabled by default, and Spring Boot supports DataSource auto-config.
  3. Final Answer:

    Missing database driver dependency causing auto-config to fail -> Option C
  4. 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

  1. Step 1: Identify how to exclude specific auto-config

    Spring Boot allows excluding specific auto-config classes using the exclude attribute on @SpringBootApplication.
  2. 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.
  3. Final Answer:

    Add @SpringBootApplication(exclude = JpaAutoConfiguration.class) on main class -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard