Existe-t-il un moyen agréable d'avoir les classes @Controller
de Spring pour appeler une méthode spécifique une fois par demande?Appeler les méthodes @Controller une fois par demande
Actuellement, j'utilise une méthode annotée avec @InitBinder
à cette fin, mais cela est sous-optimal car les méthodes @InitBinder
sont appelées plusieurs fois par requête. Je veux juste faire des choses d'initialisation/mise à jour à utiliser dans mes contrôleurs. Ce que je recherche est quelque chose comme before_filter
de Rails, mais pour autant que je sache, il n'y a pas de fonctionnalité comme ça dans Spring.
J'ai déjà pensé à une telle solution, mais je ne veux pas initialiser mes contrôleurs à chaque requête. Je veux juste faire quelques petites tâches de nettoyage (par exemple réinitialiser certaines propriétés utilisées dans mes vues). Donc, ce serait possible, mais j'espérais une solution plus propre. – Koraktor
Les contrôleurs de ressort sont par défaut partagés entre les threads et les demandes. Si vous avez un état per-request dans vos beans de contrôleur, vous ne devez pas les partager entre les requêtes, et les beans de portée de requête sont le moyen le plus propre et le plus sûr de gérer cela. – skaffman
Existe-t-il un moyen d'autowire un bean de portée de requête dans un contrôleur à portée singleton? – Koraktor