1. 특징
- 스프링 3.X 이상의 프레임워크에서는 XML 파일에서 하는 Bean의 정의를 자바클래스로서 선언할수 있게 한다.
- Spring IoC 컨테이너에게 설정 정보(Meta Data)임을 알려줌
- XML 파일에서 아래와 같이 설정하는 것과 동일한 역할을 수행( 클래스를 스프링 Bean으로 등록하고 이미 등록된 bean들에 대해 어노테이션을 활성화하는 것)
<beans>
<context:annotation-config />
<bean class="com.sample.AppConfig" />
</beans>
- 개발자가 직접 제어할 수 없는 외부 라이브러리 혹은 설정을 위한 클래스를 Bean으로 등록할 때 @Bean 어노테이션과 함께 사용되기도 함. (단독으로도 사용 가능)
- @Bean 단독 사용 시, bean 등록이 되긴 하지만 IoC 컨테이너에서 싱글톤 객체로 생성되지 않음
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
@AliasFor(annotation = Component.class)
String value() default "";
boolean proxyBeanMethods() default true;
}
@Configuration 를 선언한 코드를 보면 Target이 Type이므로 클래스,인터페이스,Enum 에서만 사용가능하다.
References
https://mangkyu.tistory.com/75
[SpringBoot] @Bean, @Configuration, @Component 어노테이션
기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활
mangkyu.tistory.com
스프링 @Configuration 어노테이션 예제
https://examples.javacodegeeks.com/enterprise-java/spring/spring-configuration-annotation-example/ 의 글을 번역해서 올림니다. 스프링 3.x 프레임워크는 XML 파일에서의 bean정의를 자바클래스로 선언할 수 있다. 이 예제
tech.javacafe.io
https://gmlwjd9405.github.io/2018/11/10/spring-beans.html
[Spring] Spring Bean의 개념과 Bean Scope 종류 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'Spring' 카테고리의 다른 글
@ModelAttribute 어노테이션을 생략했을 때 파라미터가 바인딩되는 과정 (0) | 2023.08.25 |
---|---|
SpringBoot JSON 형태의 날짜타입 LocalDateTime 으로 받기 (0) | 2022.11.17 |
DI(Dependency Injection) (0) | 2021.01.03 |
Springboot 단위 테스트 (0) | 2020.12.31 |
ORM, 그리고 JPA ( Java Persistent API ) (0) | 2020.12.27 |