ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] Spring Bean이란?
    legacy/Spring 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();
        }
    }
Designed by Tistory.