首页 >Java >Spring API 控制器

Spring API 控制器

PHPz
PHPz转载
2024-02-10 20:36:11578浏览

php小编子墨今天要为大家介绍的是Spring API控制器。在开发Web应用程序时,控制器是非常重要的一部分。它负责接收来自用户的请求,并根据请求的内容执行相应的操作。Spring框架提供了强大的API控制器,可以帮助开发人员更加便捷地创建和管理控制器。通过使用Spring API控制器,开发人员可以轻松地将请求映射到相应的处理方法,并处理请求参数、返回结果等。这一功能强大的控制器使得开发Web应用程序更加高效和可靠。

问题内容

我正在开发这个应用程序,我想要一些关于 api 层次结构的建议,我有一个 user 类和一个从 user 扩展的 student 类,以及其他 3 个类(studentcode、studentconduite 和 studentpark)这 3 个类从学生扩展,其想法是,当管理员尝试添加新学生时,也会要求添加新用户(主键位于用户类中),我想检查该用户是否已存在于studentservice 类并调用保存用户的方法(如果用户尚不存在),或者检查用户是否存在于 api 级别。

//calling the method on StudentService:
@Service
public class StudentService {

    @Autowired
     StudentDao studentDao;
     UserDao userDao;
     UserService userService;

    public Student registerNewStudent(Student student) {
        User existingUser = userDao.findById(student.getUserName()).orElse(null);
        if (existingUser ==null) {
        userService.registerNewUser(student);
        }
        return studentDao.save(student);
    }
}


//or i check if the user exist in the api like this :

public class StudentController {
    @Autowired
    private StudentService studentService;
    private UserDao userDao;
    private UserController userController;
    
    @PostMapping({"/registerNewStudent"})
    public Student registerNewStudent(@RequestBody Student student) {
        User existingUser = userDao.findById(student.getUserName()).orElse(null);

        if (existingUser ==null) {

          
            userController.registerNewUser(student);
        }
        return studentService.registerNewStudent(student);
    }
    

}



//and this is registerNewUser methode from Userservice:

  public User registerNewUser(User user) {
        Role role = roleDao.findById("User").get();
        Set<Role> userRoles = new HashSet<>();
        userRoles.add(role);
        user.setRole(userRoles);
        user.setUserPassword(getEncodedPassword(user.getUserPassword()));

        return userDao.save(user);
    }



//and this is registerNewUser methode from UserController:

 @PostMapping({"/registerNewUser"})


    public User registerNewUser(@RequestBody User user) {
        return userService.registerNewUser(user);
    }

解决方法

控制器不应包含任何业务逻辑,它们仅委托给封装所有逻辑的适当服务类。因此,定义一个服务类并将所有逻辑放入其中,并从控制器调用它。

以上是Spring API 控制器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除