Loading...
Spring Framework Reference Documentation 7.0.2의 Annotation-based Container Configuration의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Spring은 관련 클래스, 메서드, 또는 필드 선언에 대한 어노테이션을 사용하여 컴포넌트 클래스 자체의 메타데이터를 기반으로 동작하는 어노테이션 기반 설정에 대한 포괄적인 지원을 제공합니다. Example: The AutowiredAnnotationBeanPostProcessor에서 언급한 것처럼, Spring은 특정 어노테이션을 인식하도록 core IOC 컨테이너를 인지시키기 위해 어노테이션과 함께 BeanPostProcessors를 사용합니다.
예를 들어, @Autowired 어노테이션은 Autowiring Collaborators에 설명된 것과 동일한 기능을 제공하지만, 더 세밀한 제어 및 더 넓은 적용 가능성을 제공합니다. 추가로, Spring은 @PostConstruct 및 @PreDestroy와 같은 JSR-250 어노테이션과 @Inject 및 @Named와 같은 jakarta.inject 패키지에 포함된 JSR-330 (Dependency Injection for Java) 어노테이션에 대한 지원도 제공합니다.
해당 어노테이션에 대한 세부 정보는 relevant section에서 확인할 수 있습니다.
어노테이션 주입은 외부 프로퍼티 주입보다 먼저 수행됩니다. 따라서 외부 설정(예를 들어, XML로 지정된 빈 프로퍼티)은 혼합 방식을 통해 와이어링될 때 프로퍼티에 대한 어노테이션을 효과적으로 오버라이드합니다.
기술적으로, post-processor를 개별 빈 정의로 등록할 수 있지만, 그것들은 이미 AnnotationConfigApplicationContext에 암묵적으로 등록되어 있습니다.
XML 기반 Spring 설정에서, 어노테이션 기반 설정과의 혼합 사용을 활성화하기 위해 다음 설정 태그를 포함할 수 있습니다:
1<?xml version="1.0" encoding="UTF-8"?> 2<beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 https://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/context 8 https://www.springframework.org/schema/context/spring-context.xsd"> 9 10 <context:annotation-config/> 11 12</beans>
<context:annotation-config/> element는 다음 post-processor를 암묵적으로 등록합니다:
ConfigurationClassPostProcessorAutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorPersistenceAnnotationBeanPostProcessorEventListenerMethodProcessor
<context:annotation-config/>는 자신이 정의된 동일한 애플리케이션 컨텍스트 내의 빈에 대한 어노테이션만 찾습니다. 이는 만약DispatcherServlet을 위한WebApplicationContext에<context:annotation-config/>를 넣는다면, 컨트롤러 내의@Autowired빈만 확인하고 서비스는 확인하지 않는다는 것을 의미합니다. 더 많은 정보는 The DispatcherServlet을 참고하십시오.
Container Extension Points
Using @Autowired