Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring MVC重复请求忽略服务层中的检查_Spring Mvc_Spring Boot - Fatal编程技术网

Spring mvc Spring MVC重复请求忽略服务层中的检查

Spring mvc Spring MVC重复请求忽略服务层中的检查,spring-mvc,spring-boot,Spring Mvc,Spring Boot,我在我的项目中使用spring boot mvc,我面临一个奇怪的问题 我的服务层中有这个方法 @Autowired UserRepository userRepository; public void registerUser(User user) { User existingUser = userRepository.findByUsername(user.getUsername()); if (existingUser != null) { thro

我在我的项目中使用spring boot mvc,我面临一个奇怪的问题

我的服务层中有这个方法

@Autowired
UserRepository userRepository;

public void registerUser(User user) {

    User existingUser = userRepository.findByUsername(user.getUsername());

    if (existingUser != null) {
        throw new UserException("Sorry! This username is already taken");
    }
    // other validations
    userRepository.save(user);
}
令人惊讶的是,数据库中存在具有相同用户名的条目。当前端对同一表单内容发出多个请求时,就会发生这种情况

我有两个问题:

1.除了要求前端在单击后禁用submit按钮之外,我是否可以在后端(Java)停止此操作

  • 如果只在前端处理,是否会有安全风险
    您应该为用户名定义唯一约束,也可以在单击“提交”按钮后禁用该按钮。同意。但是,在使用spring mvc时,有没有一种方法可以处理并发请求?让你的方法Syncronous可以做到这一点,但它会让你的应用程序慢一点。但是,这是解决问题的一种方法,也许可以尝试一下