[Spring] @Component와 @Configuration

AlBan·2021년 4월 5일
0

Spring

목록 보기
1/13
post-thumbnail

@Componenet와 @Configuration은 큰 차이는 없다.
하지만, @Configuration의 선언부를 보면 @Component가 정의되어 있으며, @Component는 개발자가 작성한 클래스를 Bean으로 등록하고자 할 때 사용한다.


@Componenet

  • 개발자가 직접 작성한 클래스를 Bean으로 등록하고자 할 경우 사용
  • @Controller, @Service, @Repository 등의 어노테이션에서 상속
// 다른 클래스에서 Bean으로 불러 사용이 가능함
@Component
public class MyComponent{
	// do something
}

@Configuration

  • 외부라이브러리 또는 내장 클래스를 Bean으로 등록하고자 할 경우 사용(개발자가 직접 제어가 불가능한 클래스)
  • 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을 사용. 즉, 해당 클래스에서 한 개 이상의 Bean을 생성하고 있을때 선언 해주어야 함
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

	// config...

    @Bean
	public PasswordEncoder passwordEncoder() {
    	return new BCryptPasswordEncoder();
	}
}

개발자가 직접 제어 가능 : @Component

개발자가 직접 제어 불가능 : @Configuration, @Bean

위와 같은 방법으로 구별을 하고 사용한다

profile
[Spring, React를 공부하는 끈질긴 개발자 지망생] 잊어버리지 않도록! 정리 또 정리!

0개의 댓글