Fügen Sie einen Servlet-Filter in eine Spring-Boot-Anwendung
Möchte ich haben ETag suport. Für diesen Zweck gibt es einen ShallowEtagHeaderFilter
das macht die ganze Arbeit. Wie kann ich es hinzufügen, ohne Sie zu deklarieren in meiner web.xml
(die eigentlich nicht vorhanden ist, weil ich hab irgendwie, ohne es bisher)?
P. S. ich benutze Spring Boot 1.1.4
P. P. S. Hier ist eine komplette Lösung
package cuenation.api;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.ShallowEtagHeaderFilter;
import javax.servlet.DispatcherType;
import java.util.EnumSet;
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean shallowEtagHeaderFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new ShallowEtagHeaderFilter());
registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
registration.addUrlPatterns("/cue-categories");
return registration;
}
}
InformationsquelleAutor der Frage dVaffection | 2014-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei der Verwendung von Spring Boot
Als erwähnt in der Referenz-Dokumentationder einzige Schritt erforderlich ist, um zu erklären, dass filter wie eine Bohne in eine configuration-Klasse, das ist es!
Bei der Verwendung von Spring MVC
Sind Sie wahrscheinlich bereits die Verlängerung eines
WebApplicationInitializer
. Wenn nicht, dann sollten Sie konvertieren Sie Ihre webapp-Konfiguration von einemweb.xml
Datei zu einemWebApplicationInitializer
Klasse.Wenn Ihr Kontext-Konfigurations-Leben in der XML-Datei(en), Sie können eine Klasse erstellen, erstreckt sich
AbstractDispatcherServletInitializer
- wenn Sie mit der Konfiguration von Klassen, dieAbstractAnnotationConfigDispatcherServletInitializer
ist die richtige Wahl.In jedem Fall können Sie dann Filter hinzufügen Registrierung:
Vollständige Beispiele code-basierte Servlet-container Initialisierung stehen im Frühjahr die Referenz-Dokumentation.
InformationsquelleAutor der Antwort Brian Clozel
Etwas späte Antwort.
War meine Lösung zum erstellen von benutzerdefinierten annotation:
Und dann einfach anwenden, um den filter-Implementierungen:
Mehr sehen:
@AliasFor
Frühjahr individuelle Anmerkungen FrageInformationsquelleAutor der Antwort Andrii Abramov