본문 바로가기
개발/DB

스프링 연동설정(마이바티스)

by ironwoong 2013. 11. 26.
반응형

마이바티스와 스프링을 연동할 떼 사용하는 두개의 클래스는 자바의 다지아니 패턴에서 팩토리 패턴과 템플릿 패턴을

사용한다. 디자인 패턴은 자바와 같은 개발 언어를 오랜 기간 사용하면서 개발자들이 좋은 코드 구조를 고민하고 공유하면서

쌓아온 좋은 코드들의 형태를 말한다.

이런 좋은 코드들의 형태 중 팩토리 패턴과 템플릿 패턴이라는 두가지 형태를 사용한 것으로, 클래스명을 보더라도

사용한 패턴을 종류를 간단하게 짐작할수있다.

sqlSessionFactoryBean은 팩토리 패턴을 사용한다. 자바는 new를 사용해서 객체를 생성할수있지만,

new를 사용한 객체 생성 방법은나중에 객체를 생성하는 규칙이 변경될 경우 변경이쉽지않다. 하지만 팩토리 패턴은 객체를

생성하는 규칙이 변경될 경우 변경이 쉽지않다.

하지만 팩토리 패턴은 객체를 생성하기 위한 별도의 클래스와 메소드를 선언해서 처리하게 한다.

별도로 정의한 메소드를 나중에 일부수정하는 것은 부담이 적고 new를 사용해서 객체를 생성하는 것보다는 좀더 로직을 분리할수있어

유연하다고 할수 있다. 스프링은 객체를 생성하기 위해 getObject 메소드를 기본으로 사용한다.

스프링에서 팩토리 패턴을 굉장히 많은 부분에서 사용한다 스프링의 JAVA API 문서를 보더라도 FactoryBean으로 끝나는 클래스는

굉장히많다. SqlSessionTemplate은 템플릿 패턴을 사용한다. 개발을 하다보면 몇가지 메소드들이 처리 로직은 동일하지만

상황에따라 극히 일부분만 다른 경우가 있다. 따라서 공통적인 로직은 별도로 분리하고 상황마다 다른 로직만 별도의 템플릿 형태의 메소드에

정의하게 할수있다. 스프링이 ORM을 지원하는 org.springframework.com 패키지의 하위 패키지를 보면 하이버네이트, 아이바티스, JPA 각각에

대해 hibernateTemplate, SqlMapclientTemplate, JpaTemplate 를 제공하고있다.

이런 클래스들은 데이터베이스를 사용한다는 점에서는 동일하지만, 실제 데이터베이스를 사용해서 세부적인 처리를 할때는 약간씩 차이가 있기

때문에 템플릿을 패턴을 적용하기에 적절한 종류라고 생각할수있다.

스프링은 팩토리 패턴과 템플릿 패턴을 사용해서 코드의 구조적인 부분이 잘 설계돼 있다. 좋은 코드를 공부할대 스프링 코드를 그대상으로

선정하는 사람들도 있다.이렇게 잘 작성된 코드로 인해 스프링은 코드를 쉽게 변경하거나 추가할수있다.


반응형

댓글