Heim > Java > Spring API-Controller

Spring API-Controller

PHPz
Freigeben: 2024-02-10 20:36:11
nach vorne
569 Leute haben es durchsucht

PHP-Editor Zimo möchte Ihnen heute den Spring API-Controller vorstellen. Controller sind ein sehr wichtiger Bestandteil bei der Entwicklung von Webanwendungen. Es ist dafür verantwortlich, Anfragen von Benutzern zu empfangen und entsprechende Vorgänge basierend auf dem Inhalt der Anfrage durchzuführen. Das Spring-Framework bietet leistungsstarke API-Controller, mit denen Entwickler Controller einfacher erstellen und verwalten können. Durch die Verwendung von Spring-API-Controllern können Entwickler Anforderungen einfach den entsprechenden Verarbeitungsmethoden zuordnen und Anforderungsparameter verarbeiten, Ergebnisse zurückgeben usw. Dieser leistungsstarke Controller macht die Entwicklung von Webanwendungen effizienter und zuverlässiger.

Frageninhalt

Ich entwickle diese Anwendung und hätte gerne Ratschläge zur API-Hierarchie. Ich habe eine Benutzerklasse und eine Studentenklasse, die vom Benutzer ausgehen, und 3 weitere Klassen (Studentcode, Studentconduite und Studentpark). Diese 3 Klassen erweitern sich Die Idee von Student besteht darin, dass der Administrator, wenn er versucht, einen neuen Studenten hinzuzufügen, auch darum bittet, einen neuen Benutzer hinzuzufügen (der Primärschlüssel befindet sich in der User-Klasse), und ich möchte überprüfen, ob der Benutzer bereits in der Studentservice-Klasse vorhanden ist und rufen Sie die Methode „Benutzer speichern“ auf, wenn der Benutzer noch nicht existiert, oder um zu überprüfen, ob der Benutzer auf API-Ebene existiert.

//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);
    }
Nach dem Login kopieren

Workaround

Controller sollten keine Geschäftslogik enthalten, sie delegieren nur an entsprechende Serviceklassen, die die gesamte Logik kapseln. Definieren Sie also eine Serviceklasse, fügen Sie die gesamte Logik darin ein und rufen Sie sie vom Controller aus auf.

Das obige ist der detaillierte Inhalt vonSpring API-Controller. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage