3
votes

Quand utiliser @ServerEndpoint vs @Controller dans le framework Java Spring Boot?

Quelqu'un peut-il indiquer les différences entre les 2 et quand il est approprié d'utiliser lequel?


0 commentaires

3 Réponses :


3
votes

@ServerEndPoint est une annotation pour le socket Web, et @Controller est une annotation pour le Web. (De même, il y a @RestController .)


0 commentaires

4
votes

Lorsqu'une classe annotée par @ServerEndpoint est enregistrée sur un point de terminaison WebSocket côté serveur et chaque fois que le WebSocket du point de terminaison correspondant est connecté au serveur, son instance est créée et gérée par l'implémentation JWA.

/ p>

Les contrôleurs classiques peuvent être annotés avec l'annotation @Controller . Il s'agit simplement d'une spécialisation de la classe @Component et permet aux classes d'implémentation d'être détectées automatiquement via l'analyse du chemin de classe.

J'espère que cela vous aidera


0 commentaires

2
votes

Cet article peut peut-être vous aider:

https://spring.io/blog/2013/05/23/spring-framework-4-0-m1-websocket-support

@ServerEndpoint : s'il est décoré avec @ServerEndpoint , le conteneur garantit la disponibilité de la classe en tant que serveur WebSocket écoutant un espace URI spécifique

@ServerEndpoint(value="/chat/{username}")
public class ChatEndpoint {
----
}

@Controller : s'il est décoré avec l'annotation @Controller , il s'agit d'une annotation utilisée dans le framework Spring MVC (le composant de Spring Framework utilisé pour implémenter l'application Web). L'annotation @Controller indique qu'une classe particulière joue le rôle d'un contrôleur. L'annotation @Controller agit comme un stéréotype pour la classe annotée, indiquant son rôle. Le répartiteur analyse ces classes annotées à la recherche de méthodes mappées et détecte les annotations @RequestMapping.


0 commentaires