第一步:添加AOP依赖
<!--事务的AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
第二步:编写事务管理器
@Configuration
public class TransactionConfig {
@Bean
public DataSourceTransactionManager dataSourceTransactionManager(DataSource datasource) {
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(datasource);
return dataSourceTransactionManager;
}
}
第三步:在启动类上写@EnableTransactionManagement注解开启注解
@SpringBootApplication
// 开启mapper的扫描
@MapperScan("com.woniu.mapper")
//开启事务
@EnableTransactionManagement
public class SmartSysApplication {
public static void main(String[] args) {
SpringApplication.run(SmartSysApplication.class, args);
}
}
第四部:在需要事务的类或方法上写标记事务的注解@Transactional
@Transactional
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
UserMapper userMapper;
@Autowired
UserRoleMapper userRoleMapper;
@Override
public boolean saveUser(User user) {
// 先对密码进行加密操作
String salt = PasswordUtils.createSalt();
String md5password = PasswordUtils.createPassword(user.getPassword(), salt, 6);
user.setPassword(md5password);
user.setSalt(salt);
// 进行用户插入操作
int insertUser = userMapper.insert(user);
// 向t_User_Role表中插入数据
UserRole userRole = new UserRole();
userRole.setUid(user.getUid());
userRole.setRid(user.getRid());
int insertUserRole = userRoleMapper.insert(userRole);
// 进行判断返回结果
if(insertUser>0&&insertUserRole>0){
return true;
}
return false;
}
}