spring 4 mybatis 예제

봄 4의 Java 구성 기능이 향상되면 스프링 응용 프로그램에 대해 MyBatis를 구성하기 위해 더 이상 xml이 필요하지 않습니다. mybatis 스프링 라이브러리에서 제공하는 @MapperScan 어노미를 사용하여 MyBatis 도메인 매퍼에 대한 패키지 수준 검사를 수행할 수 있습니다. Servlet 3+와 결합하면 MyBatis 쿼리 정의 제외) XML 없이 응용 프로그램을 구성하고 실행할 수 있습니다. 이 게시물은이 코드에 대한 내 기여에 대한 이전 게시물에 대한 긴 연체 후속 조치입니다. @SpringBean 부어는 스트라이프 에 봄에 그 콩을 찾아이 ActionBean에 주입 하는 줄무늬 추가. 참고: 여기에 표시된 예제는 스프링 4.0.6 및 4.2.4에서 작동합니다. 이러한 예제와 호환되는 Spring 버전에 대한 업데이트는 GitHub의 마스터 분기를 확인하십시오. 이 게시물은 봄 환경에서 MyBatis 프레임 워크와 MYSQL DB를 사용하여 학생 등록 응용 프로그램을 만드는 방법을 보여줍니다. 이것은 가입하는 동안 사용자의 입력 세부 사항을 수집하고 MYSQL DB에 세부 정보를 저장하고 로그인하는 동안 동일한 인증을 목표로하는 간단한 응용 프로그램입니다. 이 장에서는 MyBatis-Spring을 설치하고 설정하는 방법과 간단한 트랜잭션 응용 프로그램을 빌드하는 방법을 몇 가지 단계로 보여 줄 것입니다. 프레젠테이션 레이어는 JSP 파일과 스트라이프 액션빈으로 구성됩니다. JSP는 일반 HTML, JSTL 태그 및 줄무늬 태그를 사용합니다. 스트라이프 액션빈은 스트럿츠 액션 또는 스프링 MVC 컨트롤러와 같습니다.

이 서비스는 MyBatis로 빌드된 데이터 액세스 계층을 호출합니다. 이 계층은 런타임에 MyBatis에 의해 빌드된 동적 프록시와 함께 사용되고 Spring이 서비스에 주입하는 인터페이스UserMapper.java로 구성됩니다. 구성이 완료되면 다른 스프링 빈을 주입하는 것과 동일한 방식으로 비즈니스/서비스 개체에 직접 매퍼를 삽입할 수 있습니다. 매퍼팩토리빈은 SqlSession을 만들고 닫는 것을 처리합니다. 진행 중인 Spring 트랜잭션이 있는 경우 트랜잭션이 완료될 때 세션도 커밋되거나 롤백됩니다. 마지막으로 예외는 스프링 데이터액세스예외로 변환됩니다. 스트라이프로 완성했습니다. 스프링 쪽으로 넘어갑시다. 봄의 참조 매뉴얼에 따르면 우리는 봄을 시작하는 컨텍스트 리스터를 추가해야합니다. 그것을 추가 하자: 지금까지, 우리가 한 모든 표준 줄무늬와 스프링 구성 이며 지금 MyBatis 부분으로 이동 하는 시간. 이 설명서에서 배운 것처럼 MyBatis를 봄과 함께 설정하려면 SqlSessionFactoryBean과 적어도 하나의 매퍼 클래스의 두 가지가 필요합니다. 그래서 손을 가자.

먼저 SqlSessionFactoryBean을 정의하십시오 : 봄의 자바 Config를 구현하는 방법을 찾는 사람들을 위해 많은 상충되는 정보가 있습니다. 대상 버전과 일치하지 않을 수 있으므로 예제에서 사용된 Spring 버전을 확인해야 합니다. 이 예제에서는 스프링 프레임워크 4.0.6 및 MyBatis 3.2.7을 사용합니다. 스프링 MCV 응용 프로그램에 대한 Java Config의 잡초에 들어가지 않기 위해 MyBatis를 Java Config와 통합하는 관련 부분만 다룹니다. 두 번째로 눈에 띄는 것은 커밋이나 롤백이 없다는 것입니다. MyBatis-Spring에서 완전히 지원하는 스프링의 선언적 트랜잭션 경계 기능을 사용하기 때문입니다. Spring의 @Transactional 어칭은 이 메서드가 트랜잭션임을 나타내며, 이는 모든 업데이트인벤토리수량, insertOrder 및 insertLineItem 매퍼 호출이 확인을 종료해야 함을 의미합니다.