2012-05-08 2 views

답변

1

알아낼 수 있지만 코드를 파헤쳐 야합니다. 네임 스페이스 처리를위한 진입 점은 org.springframework.beans.factory.xml.NamespaceHandler의 구현입니다. 이 구현은 일반적으로 해당 네임 스페이스의 다양한 최상위 요소를 처리하기 위해 많은 수의 org.springframework.beans.factory.xml.BeanDefinitionParser 구현을 설정합니다.

NamespaceHandler 구현은 일반적으로 지원하는 스키마에 따라 지정되지만 보장 할 수는 없습니다. 주어진 네임 스페이스에 대해 어느 핸들러가 책임이 있는지를 확실히 결정하려면 해당 네임 스페이스 처리기를 정의하는 spring.handlers 파일을 찾아야합니다. 해당 파일은 포함 된 jar의 META-INF 폴더에 있습니다. 예를 들어

: 스프링 TX- [버전]의 META-INF 폴더에서의 .jar 다음 행을 가진 spring.handlers 파일이 : 상기 tx 네임 스페이스에 의해 처리된다

http\://www.springframework.org/schema/tx=org.springframework.transaction.config.TxNamespaceHandler 

TxNamespaceHandler. 당신이 핸들러의 소스 코드를 볼 경우, init()에 당신은 당신의 스프링 XML에서 <tx:advice> 문이 org.springframework.transaction.config.TxAdviceBeanDefinitionParser에 의해 처리되는 것을 의미

registerBeanDefinitionParser("advice", new TxAdviceBeanDefinitionParser()); 

을 볼 수 있습니다. 유사한 방법으로 spring.handlersNamespaceHandler으로 드릴 다운 할 수 있습니다.

관련 문제