Class XmlValveAdapter

java.lang.Object
jakarta.xml.bind.annotation.adapters.XmlAdapter<XmlValve,Valve>
com.easydesk.pipeline.XmlValveAdapter

public class XmlValveAdapter extends jakarta.xml.bind.annotation.adapters.XmlAdapter<XmlValve,Valve>
Creates Valve objects. Valve 는 XML 에 적힌 클래스명을 reflection 으로 생성하므로 Spring 컨테이너가 만든 빈이 아니다. 예전엔 이 자리에서 Avalon 컨테이너가 서비스 룩업 방식으로 의존성을 채워 넣었다. 지금은 생성 직후 AutowireCapableBeanFactory.autowireBean(Object) 로 그 Valve 안의 @Autowired 필드(예: ConditionalValve#pipelineService)를 채워 넣는다. beanFactory 가 없는 기본 생성자는 JAXB 가 marshal 시 스스로 인스턴스화할 때 사용되며, 이 경우에는 autowire 를 수행하지 않는다(marshal 은 이미 만들어진 Valve 를 읽기만 하므로 필요 없다).
Author:
Thomas Vandahl
  • Constructor Details

    • XmlValveAdapter

      public XmlValveAdapter()
      JAXB 가 marshal 시 기본 생성자로 스스로 인스턴스화할 때를 위한 생성자.
    • XmlValveAdapter

      public XmlValveAdapter(org.springframework.beans.factory.config.AutowireCapableBeanFactory beanFactory)
      Parameters:
      beanFactory - unmarshal 로 생성된 Valve 에 의존성을 주입할 때 사용할 팩토리
  • Method Details

    • unmarshal

      public Valve unmarshal(XmlValve xmlValve) throws Exception
      XmlAdapter.unmarshal(java.lang.Object)
      Specified by:
      unmarshal in class jakarta.xml.bind.annotation.adapters.XmlAdapter<XmlValve,Valve>
      Throws:
      Exception
    • marshal

      public XmlValve marshal(Valve valve) throws Exception
      XmlAdapter.unmarshal(java.lang.Object)
      Specified by:
      marshal in class jakarta.xml.bind.annotation.adapters.XmlAdapter<XmlValve,Valve>
      Throws:
      Exception