Spring Boot学习之四Spring Boot事务管理

Posted cac2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot学习之四Spring Boot事务管理相关的知识,希望对你有一定的参考价值。

环境
  eclipse 4.7
  jdk 1.8
  Spring Boot 1.5.2

一、springboot整合事务
事务分类:编程事务、声明事务(XML、注解),推荐使用注解方式,springboot默认集成事物,只主要在方法上加上@Transactional即可
1、controller

package com.wjy.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.wjy.test1.service.UserServiceTest1;


@RestController
public class UserController 

    @Autowired
    public UserServiceTest1 userServiceTest1;
    
    @RequestMapping("/insertTest1ByService")
    public String insertTest1ByService(String name,Integer age) 
        userServiceTest1.insertuser1(name, age);
        return "success";
    
    
    

2、service

/**
 * 
 */
package com.wjy.test1.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.wjy.test1.dao.UserMapperTest1;

/**
 * @Desc
 * @author wangjy15
 */
@Service
public class UserServiceTest1 
    
    @Autowired
    private UserMapperTest1 userMapperTest1;
    
    /**
     * @Description: 如果没有事务控制 那么报错之后  插入到库里的数据不会回滚  加上 注解@Transactional  就可以回滚
     */
    @Transactional
    public String insertuser1(String name,Integer age) 
        userMapperTest1.insert(name, age);
        int i =1/0;
        return "success";
    

 

3、mapper

/**
 * 
 */
package com.wjy.test1.dao;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.wjy.entity.User;

/**
 * @Desc
 * @author wangjy15
 */
public interface UserMapperTest1 
    
    @Select("SELECT * FROM users WHERE NAME = #name")
    User findByName(@Param("name") String name);

    @Insert("insert into users (name,age) values(#name,#age)")
    int insert(@Param("name") String name,@Param("age") Integer age);

 

4、APP

package com.wjy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class APP 

    public static void main(String[] args) 
        SpringApplication.run(APP.class, args);
    

5、测试验证

http://localhost:8080/insertTest1ByService?name=wangsan0010&age=1000

 

二、SpringBoot分布式事务管理
传统项目:jta+automatic

 

以上是关于Spring Boot学习之四Spring Boot事务管理的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 学习之项目构建

spring boot 学习之二(spring boot单元测试)

spring-boot学习之集成mybatis

Spring Boot学习之五日志管理

Activiti学习之spring boot 与activiti整合

spring boot框架学习之重要注解3注解方式读取外部资源配置文件