Bird
Raised Fist0
Spring Bootframework~30 mins

Bean concept in Spring in Spring Boot - Mini Project: Build & Apply

Choose your learning style10 modes available
Understanding the Bean Concept in Spring Boot
📖 Scenario: You are building a simple Spring Boot application that manages a greeting message. You want to understand how Spring manages objects called beans to reuse them easily across your app.
🎯 Goal: Create a Spring Boot application that defines a bean for a greeting message, configures it, uses it in a service, and finally injects it into a controller to display the greeting.
📋 What You'll Learn
Create a configuration class with a bean method returning a greeting string
Add a configuration variable to customize the greeting message
Use the bean in a service class to provide the greeting
Inject the service into a controller and return the greeting from an endpoint
💡 Why This Matters
🌍 Real World
Spring beans are the foundation of managing objects in Spring applications. This project shows how to create and use beans to share data and logic easily.
💼 Career
Understanding Spring beans is essential for Java developers working with Spring Boot, as it enables clean, modular, and testable code.
Progress0 / 4 steps
1
Create a configuration class with a bean
Create a class called GreetingConfig annotated with @Configuration. Inside it, write a method called greetingMessage annotated with @Bean that returns the string "Hello, Spring!".
Spring Boot
Hint

Use @Configuration on the class and @Bean on the method that returns the greeting string.

2
Add a configuration variable for the greeting
Inside the GreetingConfig class, add a private final string variable called customGreeting initialized to "Welcome to Spring Boot!". Change the greetingMessage method to return customGreeting instead of the fixed string.
Spring Boot
Hint

Define a private final variable and return it from the bean method.

3
Create a service class that uses the greeting bean
Create a class called GreetingService annotated with @Service. Add a private final string field called message. Use constructor injection with @Autowired to receive the greetingMessage bean and assign it to message. Add a method getGreeting() that returns message.
Spring Boot
Hint

Use constructor injection with @Autowired to get the bean and store it in a field.

4
Inject the service into a controller and return the greeting
Create a class called GreetingController annotated with @RestController. Inject GreetingService using constructor injection. Add a @GetMapping("/greet") method called greet() that returns the result of getGreeting() from the service.
Spring Boot
Hint

Use constructor injection to get the service and return its greeting in the controller method.

Practice

(1/5)
1. What is a Bean in the Spring framework?
easy
A. A type of Java exception
B. A database connection
C. An object managed by the Spring container
D. A user interface component

Solution

  1. Step 1: Understand Spring's role

    Spring manages objects to help organize and connect parts of an application.
  2. Step 2: Define what a Bean is

    A Bean is any object that Spring creates and manages in its container.
  3. Final Answer:

    An object managed by the Spring container -> Option C
  4. Quick Check:

    Bean = Managed object [OK]
Hint: Beans are Spring-managed objects, not UI or exceptions [OK]
Common Mistakes:
  • Confusing beans with database connections
  • Thinking beans are UI elements
  • Assuming beans are exceptions
2. Which annotation is used to declare a class as a Spring Bean?
easy
A. @Qualifier
B. @Component
C. @Autowired
D. @RequestMapping

Solution

  1. Step 1: Identify annotations for beans

    @Component marks a class as a Spring-managed bean.
  2. Step 2: Differentiate from other annotations

    @Qualifier specifies which bean to inject, @Autowired injects beans, @RequestMapping maps web requests.
  3. Final Answer:

    @Component -> Option B
  4. Quick Check:

    @Component = Bean declaration [OK]
Hint: Use @Component to declare beans; others serve different roles [OK]
Common Mistakes:
  • Confusing @Autowired with bean declaration
  • Using @RequestMapping for beans
  • Thinking @Qualifier declares beans
3. Given the code below, what will be printed (assuming the @Autowired field and System.out.println are inside a Spring-managed class)?
@Component
public class MyBean {
  public String greet() { return "Hello Spring"; }
}

@Autowired
MyBean myBean;

System.out.println(myBean.greet());
medium
A. Hello Spring
B. null
C. Compilation error
D. No output

Solution

  1. Step 1: Understand @Component and @Autowired

    @Component creates the bean, @Autowired injects it into the field.
  2. Step 2: Check method call output

    Calling greet() returns "Hello Spring", so it prints that string.
  3. Final Answer:

    Hello Spring -> Option A
  4. Quick Check:

    Injected bean method returns greeting [OK]
Hint: Autowired injects bean; method returns greeting string [OK]
Common Mistakes:
  • Assuming null because of missing initialization
  • Thinking it causes compile error
  • Expecting no output without System.out.println
4. What is wrong with this Spring bean declaration?
@Component
public class MyService {
  @Autowired
  private MyRepository repo;

  public void doWork() {
    repo.save();
  }
}

Assuming MyRepository is not annotated as a bean.
medium
A. No @Autowired on MyService class
B. Missing @Service annotation on MyService
C. Method doWork() should return a value
D. MyRepository is not a Spring bean, so injection fails

Solution

  1. Step 1: Check bean injection requirements

    Spring can only inject beans that are managed by the container.
  2. Step 2: Identify missing bean annotation

    MyRepository lacks @Component or similar, so Spring cannot inject it.
  3. Final Answer:

    MyRepository is not a Spring bean, so injection fails -> Option D
  4. Quick Check:

    Injection requires bean annotation [OK]
Hint: Injected classes must be beans too [OK]
Common Mistakes:
  • Thinking @Service is mandatory for injection
  • Assuming method must return value
  • Confusing @Autowired placement
5. You want to create a bean that returns a customized object. Which method correctly defines a bean using Java configuration?
hard
A. @Bean public MyBean myBean() { return new MyBean("custom"); }
B. @Component public MyBean myBean() { return new MyBean("custom"); }
C. public MyBean myBean() { return new MyBean("custom"); }
D. @Autowired public MyBean myBean() { return new MyBean("custom"); }

Solution

  1. Step 1: Understand @Bean usage

    @Bean annotation on a method inside a @Configuration class defines a bean returned by that method.
  2. Step 2: Differentiate from other annotations

    @Component is for classes, not methods; @Autowired injects dependencies, not defines beans.
  3. Final Answer:

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

    @Bean method returns custom bean [OK]
Hint: Use @Bean on methods inside @Configuration classes [OK]
Common Mistakes:
  • Using @Component on methods instead of classes
  • Omitting @Bean annotation
  • Confusing @Autowired with bean creation
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