SPING/Spring 정리

[Spring] @Bean, @Configuration 사용방법과 뜻

h0-0cat 2023. 6. 13. 15:10
728x90

@Bean 객체 등록하기

스프링 빈과 자바 일반 객체와의 차이점은 없고 스프링 컨테이너에 의해 만들어진 객체를 스프링 빈이라고 부를 뿐이다.
(스프링 컨테이너에 등록한 객체들을 빈 이라고 한다.)
1. 컴포넌트 스캔과 자동 의존관계 설정
2. 자바 코드로 직접 스프링 빈 등록
 
 

[스프링 빈의 어노테이션 종류 ]

                     →                @Component               ←

@Controller                      @Service↑                      @Repository

 

 

@Configuration & @Bean
 
@Configuration 설정된 클래스의 메서드에서 사용가능
메서드의 리턴 객체가 스프링 빈 객체임을 선언하고, 빈의 이름은 기본적으로 메서드 이름이된다.
@Bean(name="name")으로 이름 변경 가능
@Scope를 통해 객체 생성을 조정할 수 있음
@Component 어노테이션을 통해 @Configuration 없이도 빈 객체를 생성할 수도 있음
빈 객체에 init(), destroy() 등 라이프사이클 메소드를 추가한 다음 @Bean에서 지정할 수 있음

 @Configuration
 public class AppConfig {

     @Bean
     public MyBean myBean() {
         ...
     }
 }

 


 
등록된 스프링 빈을 @Autowired로 사용하기
스프링 부트의 경우 @Component, @Service, @Controller, @Repository, @Bean, @Configuration 등으로
빈들을 등록하고 필요한 곳에서 @Autowired를 통해 의존성 주입을 받아 사용하는 것이 일반적입니다.
 

728x90