- Spring의 DI Container에 의해 관리되는 POJO(Plan Old Java Object)를 Bean이라 부르며, 이들은 Spring을 구성하는 핵심 요소이다.
- Spring에서는 기본적으로 Singleton방식으로 Bean이 생성된다.
- 예전에는 xml에 Bean을 직접 등록해 주었다.(상당히 번거로운 작업)
- Spring에서는 (@Bean, @Configuration, @Component)를 사용해 Bean을 등록한다.
@Bean
- Bean으로 등록하고 싶은 메서드 위에 @Bean을 선언한다.
@Configuration //@Bean이 한개 이상일때 붙여준다.
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
@Configuration
- @Bean을 사용하는 클래스에는 반드시 @Configuration을 붙여서 해당 클래스에서 Bean을 등록한다고 명시해줘야 한다.
- @Configuration 붙여주지 않아도 Spring bean으로 등록이 되지만, 메소드 호출을 통해 객체를 생성할 때 싱글톤을 보장받지 못한다.
때문에, @Bean을 사용하는 클래스에는 @Configuration을 붙여주자.
@Component
- 개발자가 직접 개발한 클래스를 Bean으로 등록하고 싶은 경우, @Component 사용.
- @Component를 이용할때, Main 또는 App 클래스에서 @ComponentScan으로 탐색 범위를 지정해 줘야하나, SpringBoot에서는 @SpringBootConfiguration 하위에 기본적으로 포함되어 있어 별도의 설정이 필요 없다.
Content-Type, Accept (0) | 2022.03.17 |
---|---|
Gson (0) | 2022.03.12 |
직전에 쌓인 키값을 가져오기(Mybatis selectKey) (0) | 2022.01.23 |
split 첫 번째만 자르기 (0) | 2021.11.02 |
스프링 각종 파라미터 타입(링크) (0) | 2021.09.30 |