如何在Spring Boot项目中解决REST服务中的并发问题?

问题描述

我正在一个简单的Spring Boot项目中工作,我想在数据库中创建一个资源。因此,客户端将发送带有包含以下信息的正文的POST请求:名称,年龄,电子邮件密码。该应用程序具有一个RestController服务和一个DAO,它们使用Spring Data JPA与数据库进行通信。我想知道如何解决此POST请求的并发问题。

控制器:

@RestController
@RequestMapping(value = "/api/v1")
public class UserApi {

    @Autowired
    private UserService userService;

    @PostMapping("/users")
    public User createuser(@RequestBody User user) {
        return userService.createuser(user);
    }
}

服务界面:

public interface UserService {

    User createuser(User user);
}

服务类别:

@Service
public class UserServiceImpl implements UserService {

    @Autowired 
    private UserRepository userRepository;

    @Override
    public User createuser(User user) {

        return userRepository.save(user);
    }
}

DAO:

public interface UserRepository extends JpaRepository<User,Integer> {
    }

因此,在数据库中创建用户一个简单的POST请求。而且我想知道如何解决并发问题。例如,如果2个用户同时调用createuser方法,并且他们具有相同的电子邮件地址。

第二个问题是为什么建议为服务层提供一个接口,然后再建议一个实现该接口的类,并将该接口注入构造函数中?我在许多项目中都看到了这种设计。为什么不建议只创建一个没有接口的类,然后将该类注入构造函数中?

提前谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)