206. 오브젝트팩토리 (objectFactory)
2012. 4. 19. 16:41ㆍ공부/MYBATIS
마이바티스가 result 객체의 인스턴스를 새로 생성할 때마다, 인스턴스 객체를 생성하기 위해 오브젝트팩토리를 사용해. 기본 오브젝트팩토리는 기본생성자나, 파라미터가 있는 - 파라미터 매핑이 존재한다면- 생성자를 가진 타겟 클래스를 인스터스화하는 것보다 조금 더 많은 것을 하지. 오브젝트팩토리의 기본 행동을 오버라이드하고 싶다면, 새로 만들 수 있어. 예를 들면,
// ExampleObjectFactory.java public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(Class type) { return super.create(type); } public Object create(Class type, List<Class> constructorArgTypes, List<Object> constructorArgs) { return super.create(type, constructorArgTypes, constructorArgs); } public void setProperties(Properties properties) { super.setProperties(properties); } }
<!-- mybatis-config.xml --> <objectFactory type="org.mybatis.example.ExampleObjectFactory"> <property name="someProperty" value="100"/> </objectFactory>
오브젝트팩토리의 인터페이스는 매우 간단해. 기본생성자를 다루는 녀석과 파라미터가 있는 생성자들을 다루는 녀석 등 2개의 메소드를 포함해. 마지막으로 setProperties 메소드가 오브젝트팩토리를 설정하기 위해 사용될 수 있어. 오브젝트팩토리 요소의 바디 내에 정의된 프라퍼티들은 너의 오브젝트팩토리 인스턴스가 초기화된 후에 setProperties메소드로 전달될거야.