spring+mybatis 사무의 서비스 층에서 사무를 설정하는 방법

6562 단어
최근에 광고 프로젝트를 하나 하고 있는데 내용은 말하지 않겠다.이 구조는 바로spring+mybatis 간단한 프로젝트입니다.이 프로젝트는 사실 어렵지 않다. 구체적으로 나는 두 가지를 배웠다.이 편에서 나는 그중의 하나를 썼는데, 이것은 단지 나의 총결일 뿐이다.
첫 번째 문제는 실수였다.물론 다오층의 사물은 사실 모두가 배치되어 있다.이건 할 말 없어요.
 id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   name="dataSource" ref="dataSource" />
            
관건은 사실상dao층은 간단한 삭제 검사일 뿐이고 실제 업무의 한 인터페이스는 삭제 검사의 하나가 아니라 A 인터페이스의 삭제가 B 인터페이스에 추가될 수 있다는 것이다.이때 앞의 설정은 A인터페이스가 성공할 때의 업무만 보장할 수 있고 B인터페이스가 실패하면 A인터페이스가 굴러가지 않습니다.상기 설정은 하나의dao조작사무만 보장할 수 있지만 실제적으로 이렇게 간단한 요구는 불가능하다.
봄의 사무는 두 가지가 있는데 하나는 성명식 사무이고 하나는 프로그래밍식 사무이다.오늘 두 가지 모두 말씀드리겠습니다.

      1.먼저 프로그래밍 트랜잭션에 대해 살펴보겠습니다.


     
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

TransactionStatus status = txManager.getTransaction(def);
try {
  userMapper.insertUser(user);
}
catch (MyException ex) {
  txManager.rollback(status);
  throw ex;
}
txManager.commit(status);

      2.다음은 성명식 사무에 대해 말씀드리겠습니다.


프로필에 이 프로필을 추가한 다음, 업무가 필요한 방법 앞에 @Transactional
@Transactional
	@Override
	public void addGoods(AddGoodsRequest request) {
}

트랜잭션 메모 지원(@Transactional)
상기 두 가지 방법은 서비스 층에서 업무를 설정하는 데 적합하다.
아래의 많은 내용은 mybatis 홈페이지를 참고하십시오.http://www.mybatis.org/spring/zh/transactions.html#programmatic

좋은 웹페이지 즐겨찾기