본문 바로가기
개발/DB

스프링 연동설정 클래스들

by ironwoong 2013. 11. 26.
반응형



sqlSessionFactoryBean


sqlSessionFactoryBean 를 생성하기 위해 FactoryBean설정이다. 이빈을 사용해서 스프링은 sqlSessionFactory

객체를 한번만 생성한다. 그리고 마이바티스를 사용할 때마다 sqlSesstionFactory 객체를 한번만 생성한다.

그리고 마이바티스를 사용할 때마다 sqlSesstionFacroty 를 이용해서 마이바티스 객체를 매번 생성한다.

실제로 사용할때는 dataSource와 configLocation 두가지만 설정하더라도 잘 동작한다.

마이바티스 설정의 대부분은 데이터베이스 설정이고 스프링에서 동일한 설정이 가능하기 때문에 마이바티스 설정파일

에서 environments,mappers,typealiases 엘리먼트만 사용했었다면 마이바티스 설정 파일의 위치를 지정하는 configLocation도

생략 할수있다. sqlSessionFactoryBean 클래스가 제공하는 다양한 메소드를 사용해서 마이바티스 설정을 대부분

그대로 적용할수 있다는 것을 알수있다.


sqlSessionTemplate


sqlSessionTemplate은 마이바티스의 sqlSession 과 같은 역할을 담당하지만 트랜잭션을 처리하는 방법에서 약간의 차이점이 있다.

마이바티스의 sqlSession은 트랜잭션 처리를 위해 commit/rollback 메소드를 명시적으로 호출해야 하지만, sqlSessionTemplate은

스프링이 트랜잭션을 대신 처리하게 구조화돼 있기 대문에 commit/rollback 메소드를 명시적으로 호출할수없다.

그리고 sqlSession의 메소드에서 던지는 예외 타입이 org.apache.ibatis.exceptons.persistenceException 이지만

SqlSessionTemplate은 스프링의 DataAccessException을 던진다.


mapperscannerconfigurer


매퍼 인터페이스를 자동 검색해서 등록한다. 매퍼 인터페이스의 패키지 중 가장 상위 패키지를 지정해주면 그하위에 있는

매퍼 인터페이스를 모두 등록한다. 예를 들어 매퍼 인터페이스가 idg.mybatis.repository.mapper2에 있다면

idg.mybatis.repository 로 설정하면 된다. 세부적으로 하위 패키지별로 지정하고자 할대는 구분자를 사용해서 여러 개의 패키지를 지정하면 된다.

이때 사용하는 구분자는 ,(쉼표), ;(세미콜론) 둘중 한가지를 사용하면 된다.

반응형

댓글