Bird
Raised Fist0
Spring Bootframework~5 mins

@Configuration and @Bean in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the @Configuration annotation do in Spring Boot?
It marks a class as a source of bean definitions. Spring reads this class to create and manage beans in the application context.
Click to reveal answer
beginner
What is the purpose of the @Bean annotation in a Spring Boot @Configuration class?
It tells Spring that the method will return an object that should be registered as a bean in the application context.
Click to reveal answer
intermediate
How do @Configuration and @Bean work together in Spring Boot?
<code>@Configuration</code> marks the class as a bean factory. Inside it, methods annotated with <code>@Bean</code> create and return beans that Spring manages.
Click to reveal answer
intermediate
Can a method annotated with @Bean have parameters? What happens if it does?
Yes, it can have parameters. Spring will automatically inject beans matching those parameter types when calling the method.
Click to reveal answer
intermediate
Why might you use @Configuration and @Bean instead of @Component?
Because @Configuration allows you to define beans with custom logic inside methods, giving more control over bean creation than simple @Component classes.
Click to reveal answer
What does the @Configuration annotation indicate in Spring Boot?
AA REST controller
BA method that returns a bean
CA component scanned automatically
DA class that defines bean methods
What does the @Bean annotation do?
AMarks a method to produce a bean
BMarks a class as a bean
CInjects a bean into a field
DDefines a REST endpoint
If a @Bean method has parameters, what happens?
ASpring ignores the parameters
BSpring injects matching beans as arguments
CIt causes a compilation error
DThe method runs without parameters
Which annotation would you use to create a bean with custom setup logic?
A@Component
B@Service
C@Bean inside @Configuration
D@Repository
What is the main difference between @Component and @Configuration?
A@Configuration classes can contain multiple @Bean methods
B@Component is for beans, @Configuration is for REST
C@Component classes cannot be scanned
DThere is no difference
Explain how @Configuration and @Bean work together in Spring Boot to create and manage beans.
Think about a class that acts like a factory for objects.
You got /4 concepts.
    Describe why you might choose to use @Bean methods inside a @Configuration class instead of just using @Component on a class.
    Consider when you want to write code to create the bean yourself.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the @Configuration annotation in Spring Boot?
      easy
      A. To enable automatic component scanning
      B. To mark a method that returns a bean instance
      C. To mark a class as a source of bean definitions for the application context
      D. To configure database connections automatically

      Solution

      1. Step 1: Understand the role of @Configuration

        @Configuration tells Spring that this class contains methods to create beans.
      2. Step 2: Differentiate from other annotations

        @Bean marks methods, not classes; component scanning is done by @ComponentScan; database config is separate.
      3. Final Answer:

        To mark a class as a source of bean definitions for the application context -> Option C
      4. Quick Check:

        @Configuration = class for beans [OK]
      Hint: Remember: @Configuration is for classes, @Bean is for methods [OK]
      Common Mistakes:
      • Confusing @Configuration with @Bean
      • Thinking @Configuration enables scanning
      • Assuming it configures databases automatically
      2. Which of the following is the correct way to define a bean method inside a @Configuration class?
      easy
      A. @Bean public MyBean myBean() { return new MyBean(); }
      B. @Configuration public MyBean myBean() { return new MyBean(); }
      C. public void createBean() { return new MyBean(); }
      D. @Component public MyBean myBean() { return new MyBean(); }

      Solution

      1. Step 1: Check method signature for bean creation

        Bean methods must be annotated with @Bean and return the bean object.
      2. Step 2: Verify syntax correctness

        @Bean public MyBean myBean() { return new MyBean(); } correctly uses @Bean and returns a new instance.
      3. Final Answer:

        @Bean public MyBean myBean() { return new MyBean(); } -> Option A
      4. Quick Check:

        @Bean + return bean instance = correct method [OK]
      Hint: Bean methods need @Bean and must return the object [OK]
      Common Mistakes:
      • Missing @Bean annotation
      • Using void return type
      • Using @Configuration on methods
      3. Given the following code, what will be the output when retrieving the bean named "service" from the Spring context?
      @Configuration
      public class AppConfig {
        @Bean
        public String service() {
          return "MyService";
        }
      }
      medium
      A. "service"
      B. "MyService"
      C. An exception is thrown
      D. null

      Solution

      1. Step 1: Identify the bean method and its return value

        The method named service returns the string "MyService" and is annotated with @Bean.
      2. Step 2: Understand bean retrieval by name

        Spring registers this bean with the name "service" and returns the method's return value when requested.
      3. Final Answer:

        "MyService" -> Option B
      4. Quick Check:

        Bean name returns method's return value [OK]
      Hint: Bean name matches method name; returns method's return value [OK]
      Common Mistakes:
      • Expecting bean name as output instead of return value
      • Thinking Spring returns null if no explicit name
      • Assuming exception without error in code
      4. Identify the error in the following Spring configuration code:
      @Configuration
      public class Config {
        @Bean
        public void createBean() {
          // no return statement
        }
      }
      medium
      A. Method must return an object, not void
      B. Missing @Configuration annotation
      C. Method name cannot be createBean
      D. No error, code is correct

      Solution

      1. Step 1: Check method return type for @Bean

        Bean methods must return the bean object; void return type is invalid.
      2. Step 2: Confirm annotations and method name

        @Configuration is present; method name can be anything; error is only return type.
      3. Final Answer:

        Method must return an object, not void -> Option A
      4. Quick Check:

        @Bean method needs return value, not void [OK]
      Hint: Bean methods must return an object, never void [OK]
      Common Mistakes:
      • Using void return type for @Bean methods
      • Confusing method name restrictions
      • Missing @Configuration annotation (not in this case)
      5. You want to create two beans of the same type but with different configurations using @Bean methods inside a @Configuration class. How can you ensure Spring distinguishes between them when injecting?
      hard
      A. Define both beans in separate @Configuration classes only
      B. Use @Primary on both methods
      C. Use the same method name but different return types
      D. Use different method names for each @Bean method

      Solution

      1. Step 1: Understand bean naming in Spring

        By default, Spring uses the @Bean method name as the bean name to distinguish beans.
      2. Step 2: Differentiate beans of same type

        Using different method names creates distinct bean names, allowing injection by name or qualifier.
      3. Final Answer:

        Use different method names for each @Bean method -> Option D
      4. Quick Check:

        Different method names = different bean names [OK]
      Hint: Different method names create distinct bean names automatically [OK]
      Common Mistakes:
      • Using @Primary on both beans (conflicts)
      • Same method name with different return types (not allowed)
      • Thinking beans must be in separate classes
      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