Bird
Raised Fist0
Spring Bootframework~5 mins

How auto-configuration works in Spring Boot - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is auto-configuration in Spring Boot?
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
Which annotation is used to apply auto-configuration only if a class is present?
A@ConditionalOnProperty
B@ConditionalOnClass
C@EnableAutoConfiguration
D@SpringBootApplication
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
Auto-configuration in Spring Boot is mainly designed to:
AForce manual configuration
BGenerate UI components
CDisable all configurations
DAutomatically configure beans based on 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
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

      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