Bird
Raised Fist0
Spring Bootframework~5 mins

Custom auto-configuration in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is custom auto-configuration in Spring Boot?
Custom auto-configuration lets you create your own automatic setup for Spring Boot apps. It helps add features or settings without writing extra code each time.
Click to reveal answer
beginner
Which annotation marks a class as an auto-configuration class in Spring Boot?
The <code>@Configuration</code> annotation marks the class as a configuration, and <code>@ConditionalOnClass</code> or other <code>@Conditional</code> annotations control when it applies.
Click to reveal answer
intermediate
How does Spring Boot know to load your custom auto-configuration?
You list your auto-configuration class in a file named <code>META-INF/spring.factories</code> under the key <code>org.springframework.boot.autoconfigure.EnableAutoConfiguration</code>.
Click to reveal answer
intermediate
What is the role of @ConditionalOnClass in custom auto-configuration?
It makes sure your auto-configuration runs only if a certain class is on the classpath, avoiding errors if dependencies are missing.
Click to reveal answer
beginner
Why use custom auto-configuration instead of manual configuration?
It saves time by automating setup, reduces repeated code, and makes your app easier to maintain and extend.
Click to reveal answer
What file must you create to register your custom auto-configuration in Spring Boot?
Aapplication.properties
Bpom.xml
CMETA-INF/spring.factories
Dsrc/main/resources/config.yaml
Which annotation helps your auto-configuration activate only when a specific class is present?
A@ConditionalOnClass
B@Component
C@EnableAutoConfiguration
D@ConditionalOnBean
What is the main benefit of custom auto-configuration?
AWriting XML configuration
BManual setup of beans
CDisabling Spring Boot features
DAutomatic setup of features
Which annotation is essential to mark a class as a configuration source in Spring Boot?
A@Component
B@Configuration
C@Service
D@Repository
Where do you place your custom auto-configuration class in a Spring Boot project?
AUnder src/main/java with @Configuration
BIn src/test/java
CIn resources folder
DIn META-INF folder
Explain how to create and register a custom auto-configuration in Spring Boot.
Think about the steps from writing the class to telling Spring Boot about it.
You got /3 concepts.
    Describe why conditional annotations are important in custom auto-configuration.
    Consider what happens if a class your config needs is not present.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of custom auto-configuration in Spring Boot?
      easy
      A. To automatically create beans based on specific conditions
      B. To manually register beans in the application context
      C. To disable all default Spring Boot configurations
      D. To write custom SQL queries for database access

      Solution

      1. Step 1: Understand auto-configuration concept

        Custom auto-configuration automatically creates beans when certain conditions are met, reducing manual setup.
      2. Step 2: Compare options with purpose

        Only To automatically create beans based on specific conditions describes automatic bean creation based on conditions, which matches the purpose.
      3. Final Answer:

        To automatically create beans based on specific conditions -> Option A
      4. Quick Check:

        Auto-configuration = automatic bean creation [OK]
      Hint: Auto-configuration means beans created automatically [OK]
      Common Mistakes:
      • Confusing auto-configuration with manual bean registration
      • Thinking it disables default configurations
      • Mixing it with database query writing
      2. Which annotation is commonly used to mark a class as a custom auto-configuration in Spring Boot?
      easy
      A. @Configuration
      B. @Component
      C. @EnableAutoConfiguration
      D. @SpringBootApplication

      Solution

      1. Step 1: Identify annotation for configuration classes

        @Configuration marks a class as a source of bean definitions, suitable for auto-configuration classes.
      2. Step 2: Exclude other annotations

        @Component is generic, @EnableAutoConfiguration is used on main app class, @SpringBootApplication is a composite annotation.
      3. Final Answer:

        @Configuration -> Option A
      4. Quick Check:

        Auto-config class needs @Configuration [OK]
      Hint: Auto-config classes use @Configuration annotation [OK]
      Common Mistakes:
      • Using @Component instead of @Configuration
      • Confusing @EnableAutoConfiguration with auto-config class annotation
      • Using @SpringBootApplication on config classes
      3. Given this custom auto-configuration snippet, what bean will be created if com.example.MyService is on the classpath and property my.feature.enabled=true?
      @Configuration
      @ConditionalOnClass(name = "com.example.MyService")
      @ConditionalOnProperty(prefix = "my.feature", name = "enabled", havingValue = "true")
      public class MyFeatureAutoConfiguration {
          @Bean
          public String featureBean() {
              return "Feature Enabled";
          }
      }
      medium
      A. No bean will be created
      B. A bean named featureBean with value "Feature Enabled" will be created
      C. A bean named myService will be created
      D. An exception will be thrown at startup

      Solution

      1. Step 1: Check conditions for bean creation

        Bean is created only if class com.example.MyService exists and property my.feature.enabled=true.
      2. Step 2: Given conditions are met

        Since both conditions are true, the featureBean method creates a bean with value "Feature Enabled".
      3. Final Answer:

        A bean named featureBean with value "Feature Enabled" will be created -> Option B
      4. Quick Check:

        Conditions met = bean created [OK]
      Hint: Bean created only if class and property conditions are true [OK]
      Common Mistakes:
      • Ignoring @ConditionalOnProperty and assuming bean always created
      • Confusing bean name with class name
      • Expecting exceptions when conditions are met
      4. Identify the error in this custom auto-configuration class:
      @Configuration
      @ConditionalOnClass(name = "com.example.Service")
      public class ServiceAutoConfiguration {
          @Bean
          public Service service() {
              return new Service();
          }
      
          @Bean
          public Service service() {
              return new Service();
          }
      }
      medium
      A. Missing @ConditionalOnProperty annotation
      B. No error, code is valid
      C. Service class not imported
      D. Duplicate bean method names causing a compilation error

      Solution

      1. Step 1: Check bean method definitions

        Two methods named service() exist, both annotated with @Bean, causing duplicate bean names.
      2. Step 2: Understand Spring bean naming rules

        Bean names must be unique; duplicate method names cause compilation or context startup errors.
      3. Final Answer:

        Duplicate bean method names causing a compilation error -> Option D
      4. Quick Check:

        Duplicate @Bean methods = error [OK]
      Hint: Bean method names must be unique in config classes [OK]
      Common Mistakes:
      • Ignoring duplicate method names
      • Thinking missing @ConditionalOnProperty is an error here
      • Assuming missing import causes this error
      5. You want to create a custom auto-configuration that only creates a bean if no other bean of the same type exists and a property app.feature.enabled is true. Which combination of annotations should you use on your configuration class and bean method? A) @Configuration on class, @ConditionalOnMissingBean and @ConditionalOnProperty on bean method B) @Component on class, @ConditionalOnBean on bean method C) @Configuration on class, @ConditionalOnClass on bean method D) @EnableAutoConfiguration on class, no conditions on bean method
      hard
      A. @Configuration on class, @ConditionalOnClass on bean method
      B. @Component on class, @ConditionalOnBean on bean method
      C. @Configuration on class, @ConditionalOnMissingBean and @ConditionalOnProperty on bean method
      D. @EnableAutoConfiguration on class, no conditions on bean method

      Solution

      1. Step 1: Identify class-level annotation for config

        @Configuration is correct to mark a class as configuration for auto-configuration.
      2. Step 2: Choose bean method conditions

        @ConditionalOnMissingBean ensures no existing bean of the type exists; @ConditionalOnProperty checks the property is true.
      3. Step 3: Exclude incorrect options

        @Component is generic, @ConditionalOnBean requires existing bean, @ConditionalOnClass checks class presence, not bean existence, @EnableAutoConfiguration is for main app class.
      4. Final Answer:

        @Configuration on class, @ConditionalOnMissingBean and @ConditionalOnProperty on bean method -> Option C
      5. Quick Check:

        Missing bean + property conditions = @Configuration on class, @ConditionalOnMissingBean and @ConditionalOnProperty on bean method [OK]
      Hint: Use @ConditionalOnMissingBean and @ConditionalOnProperty together [OK]
      Common Mistakes:
      • Using @ConditionalOnBean instead of @ConditionalOnMissingBean
      • Putting conditions on class instead of bean method
      • Confusing @EnableAutoConfiguration with config class annotation
      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