My Space

반응형

Spring Bean?

- 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 하위에 기본적으로 포함되어 있어 별도의 설정이 필요 없다.

 

'Development > JAVA' 카테고리의 다른 글

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

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading