Bird
Raised Fist0
Spring Bootframework~5 mins

Bean concept in Spring in Spring Boot

Choose your learning style10 modes available
Introduction

A bean in Spring is an object that Spring manages for you. It helps organize and reuse parts of your app easily.

When you want Spring to create and manage objects automatically.
When you need to share the same object across different parts of your app.
When you want to separate configuration from your business logic.
When you want Spring to handle object lifecycle like creation and destruction.
When you want to use dependency injection to connect parts of your app.
Syntax
Spring Boot
@Component
public class MyBean {
    // your code here
}

// or

@Configuration
public class AppConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

@Component tells Spring to create and manage this class as a bean automatically.

@Bean is used inside a configuration class to define a bean manually.

Examples
This marks UserService as a bean that Spring will create and manage.
Spring Boot
@Component
public class UserService {
    // business logic
}
This defines a bean manually inside a configuration class.
Spring Boot
@Configuration
public class AppConfig {
    @Bean
    public UserService userService() {
        return new UserService();
    }
}
This injects the UserService bean into another class automatically.
Spring Boot
@Autowired
private UserService userService;
Sample Program

This Spring Boot app defines a GreetingService bean with @Component. It injects it into the main app class using @Autowired. When run, it prints a greeting message from the bean.

Spring Boot
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Component
class GreetingService {
    public String greet() {
        return "Hello from Spring Bean!";
    }
}

@SpringBootApplication
public class BeanExampleApp implements CommandLineRunner {

    @Autowired
    private GreetingService greetingService;

    public static void main(String[] args) {
        SpringApplication.run(BeanExampleApp.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(greetingService.greet());
    }
}
OutputSuccess
Important Notes

Beans are single instances by default (singleton scope) unless configured otherwise.

Use @ComponentScan or @SpringBootApplication to tell Spring where to find beans.

Beans help keep your code clean by separating creation and usage.

Summary

Beans are objects managed by Spring to help organize your app.

You create beans using @Component or @Bean annotations.

Spring injects beans where needed to connect your app parts easily.

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