728x90
반응형
@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
위와 같은 방법으로 구별을 하고 사용한다
출처 : https://velog.io/@albaneo0724/Spring-Component%EC%99%80-Configuration%EC%9D%98-%EC%B0%A8%EC%9D%B4
728x90
반응형
'Study > Spring' 카테고리의 다른 글
Spring Batch 5.x ~ 사용해보기 - 1. 시작하기 (0) | 2024.06.26 |
---|---|
[Spring Security] 스프링 시큐리티 세션 정책 (Session Creation Policy) (0) | 2024.02.06 |
Spring Security의 동작 구조 (0) | 2023.06.12 |
[Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 (0) | 2023.05.09 |
HTTP HEAD 메소드 (0) | 2023.04.05 |
댓글