Maison >Java >javaDidacticiel >Pourquoi mon filtre Spring est-il invoqué deux fois lorsqu'il est enregistré en tant que 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.
Pour résoudre ce problème, envisagez de mettre en œuvre l'une des approches suivantes :
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.
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; }
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!