quelqu’un peut-il m’expliquer la différence entre le contrôleur de niveau de classe et le contrôleur de niveau de méthode ..?

Je suis nouveau dans le framework spring …. en cherchant sur google …, j’ai trouvé quelques exemples qui ont @RequestMapping annotés au niveau de la classe et quelques exemples le montrant au niveau de la méthode

Quand utiliser l’annotation RequestMapping au niveau de la classe RequestMapping et au niveau de la méthode … quelqu’un peut-il m’expliquer la différence entre RequestMapping au niveau classe et RequestMapping au niveau méthode .. ??

donc je suis un peu confus au sujet de leur application à:

a) niveau de classe

b) Niveau de la méthode

J’ai aussi trouvé des @Requestmapping avec le type: GET / Post, alors que certains exemples n’ont pas de paramètre de type.

Quelle approche est la meilleure .. ??

Les nouvelles versions (> Spring 2.5) n’ont-elles pas besoin du type de paramètre pour le mappage des demandes ???

Un contrôleur doit être marqué comme @Controller au niveau de la classe. L’annotation @RequestMapping peut être appliquée au niveau de la classe et de la méthode. Si c’est le cas, les annotations de méthode seront interprétées comme des URL relatives (par rapport à l’URL de niveau classe). Cependant, des annotations au niveau de la méthode doivent être présentes, sinon la méthode ne sera pas mappée.

Dans les annotations, les parameters peuvent être marqués comme facultatifs avec les valeurs par défaut. Le paramètre de la méthode est un tel cas: sa valeur par défaut est GET , mais peut être explicitement définie sur POST ou sur un autre paramètre.

Voir:

  • @RequestMapping
  • 16.3 Implémentation des contrôleurs

Pour répondre à votre dernière question, c’est-à-dire lequel des deux est le meilleur, je dirais qu’en production, nous utilisons une combinaison des deux. Par exemple, s’il existe un contrôleur utilisateur, nous mappons la classe à “/ user” et les méthodes disent que getSettings() à “/ settings”, et la méthode pour getPermissions() à “/ permissions”, etc.

Vous pouvez mapper ces méthodes directement sur “/ user / settings” et “/ user / permissions”, ainsi que sur le mappage de classes. Mais nous préférons surtout la première approche.