티스토리 뷰

Spring

[Spring] Spring Bean이란?

heemang.dev 2024. 6. 24. 21:41

Spring Bean (스프링 빈)이란?

IoC 컨테이너에 의해 프레임워크로부터 생성되고 관리되는 자바 객체를 의미한다.

 

스프링 컨테이너에 Bean을 등록하는 방법

1. @ComponentScan에 의한 자동으로 Bean 등록

@Component가 붙은 애너테이션을 사용하면 스프링 컨테이너에 의해 자동으로 Bean으로 등록된다.

 

@Component가 붙은 대표적인 애너테이션은 다음과 같다.

  • @Controller
  • @Service
  • @Repository

  • Controller

UserController는 UserService에 의존한다.

@Controller
public class UserController {

    private UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }
}
  • Service

UserService는 UserRepository에 의존한다.

@Service
public class UserService {

    private UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}
  • Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

 

2. 수동으로 Bean 등록

@Configuration과 @Bean을 사용하여 수동으로 스프링 컨테이너에 Bean을 등록할 수 있다.

 

Bean을 관리할 클래스에 @Configuration을 붙이고, 스프링 컨테이너로 관리할 객체를 @Bean을 사용하여 등록한다.

@Configuration
public class AppConfig {

    @Bean
    public UserService userService() {
        return new UserService(userRepository());
    }
    
    @Bean
    public UserRepository userRepository() {
        return new UserRepositoryImpl();
    }
}
Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30