J'ai un contrôleur qui est de 1600 lignes à long
Gulp.
Comment gérez-vous plusieurs méthodes publiques avec l'annotation @ModelAttribute
? Ne sont-ils pas tous invoqués à chaque fois qu'une demande est traitée?
Lorsqu'il est utilisé pour annoter une méthode, cette annotation indique que doit être utilisé pour alimenter le modèle pour chaque requête exécutée par cette classe de contrôleur, quelle que soit la méthode @RequestMapping
est exécutée la valeur de retour de la méthode.
Ma suggestion est que vous effectuez un audit pour voir quelles vues (par exemple JSP) utilisent quelles données de modèle fournies par les diverses méthodes @ModelAttribute
. Il est probable que chaque vue utilise uniquement un sous-ensemble de ces données.
Une fois que vous avez déterminé quelles combinaisons de méthodes @ModelAttribute
et @RequestMapping
vont de pair, puis les décomposer en classes individuelles.
Si cela ne fonctionne pas (peut-être que toutes les vues utilisent réellement toutes les données), pensez à extraire complètement les méthodes @ModelAttribute
et assemblez-les en utilisant une méthode unique qui fusionne leurs sorties manuellement (par exemple, passer l'objet Model
ou ModelMap
de la méthode @RequestMapping
à cette nouvelle méthode, qui ajoute les bits de modèle à cet objet.
Rappelez-vous, @ModelAttribute
méthodes -annotated sont juste un moyen pratique d'ajouter des données modèles supplémentaires. Ils ne sont pas le seul moyen:
Merci. Je vais essayer cela dans notre code et afficher les résultats. J'avais besoin d'un endroit pour commencer. – pslk