7.3 서비스 추상화 적용

JaxbXmlSqlReader의 개선점

XML과 자바오브젝트 매핑 기술

⇒ OML (Object-XML Mapping) : XML과 자바오브젝트를 매핑해서 상호 변환해주는 기술

기능이 같은 여러 가지 기술이 존재함 = 서비스 추상화를 통해 구현 기술에 대해 독립적인 코드를 작성할 수 있게 해야함

물론 스프링은 트랜잭션, 메일 전송, OXM에 대해서도 서비스 추상화 기능을 제공

스프링이 제공하는 OXM 추상화 인터페이스

// Unmarshaller 인터페이스
// spring-oxm 모듈 안에 정의되어 있음
package org.springframework.oxm;

import javax.xml.transform.Source;

public interface Unmarshaller {
	// 해당 클래스로 언마샬이 가능한지 확인해줌
	// 별로 사용할 일은 없음
	boolean supports(Class<?> clazz);

	// 매핑 실패 시 추상화된 예외를 던짐
	// 서브클래스에 좀 더 세분화되어 있음
	// source를 통해 제공받은 XML을 자바오브젝트 트리로 변환해서
	// 그 루트 오브젝트를 돌려줌
	Object unmarshal(Source source) throws IOException, XmlMappingException;

}