Maison > Java > javaDidacticiel > Pourquoi mon filtre Spring est-il invoqué deux fois lorsqu'il est enregistré en tant que bean ?

Pourquoi mon filtre Spring est-il invoqué deux fois lorsqu'il est enregistré en tant que bean ?

DDD
Libérer: 2024-12-09 15:55:12
original
700 Les gens l'ont consulté

Why is my Spring Filter Invoked Twice When Registered as a Bean?

Filtre invoqué deux fois lors de l'enregistrement en tant que Spring Bean

Problème :

Une tentative d'utilisation de @Autowire avec un résultat de filtre dans une double invocation inattendue du filtre. En y regardant de plus près, on observe que le conteneur Spring déclenche cette invocation supplémentaire lorsque le filtre est enregistré en tant que bean.

Solution :

Pour résoudre ce problème, envisagez de mettre en œuvre l'une des approches suivantes :

  1. Désactiver l'enregistrement automatique du filtre :

    Éviter d'exposer le filtre en tant que bean et enregistrez-le manuellement auprès de Spring Security à la place. Cela empêche Spring Boot d'enregistrer automatiquement le filtre deux fois.

  2. Utilisez FilterRegistrationBean :

    Si l'injection de dépendances dans le filtre est nécessaire, elle doit être enregistré comme haricot. Cependant, pour empêcher l'enregistrement automatique, un FilterRegistrationBean peut être utilisé avec la propriété "enabled" définie sur false. Exemple de mise en œuvre :

@Bean
public FilterRegistrationBean registration(MyFilter filter) {
    FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter);
    registration.setEnabled(false);
    return registration;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal