Ersetzen der Anmerkungskonfiguration für mvc: resources - Spring


73

Ich versuche, mein Spring-MVC-Projekt zu aktualisieren, um die neuen Anmerkungen zu verwenden und meine XML-Datei zu entfernen. Zuvor habe ich meine statischen Ressourcen in meine web.xmlmit der Zeile geladen:

<mvc:resources mapping="/resources/**" location="/resources/" /> 

Jetzt verwende ich die WebApplicationInitializerKlasse und die @EnableWebMvcAnnotation, um meinen Dienst ohne XML-Dateien zu starten, kann aber anscheinend nicht herausfinden, wie ich meine Ressourcen laden soll.

Gibt es eine Anmerkung oder eine neue Konfiguration, um diese Ressourcen wiederzugewinnen, ohne XML verwenden zu müssen?

Antworten:


117

Für Frühling 3 & 4:

Eine Möglichkeit, dies zu tun, besteht darin, Ihre Konfigurationsklasse zu erweitern WebMvcConfigurerAdapterund dann die folgende Methode als solche zu überschreiben:

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}

5
Diese Antwort ist völlig richtig. Wenn Sie jedoch nach dem Hinzufügen Probleme haben (wie ich), denken Sie daran, dass Sie möglicherweise noch einen hier beschriebenen Standard-Servlet-Handler benötigen: stackoverflow.com/a/17013442/2047962
RustyTheBoyRobot

Für die Antwort positiv bewertet. Besser, wenn Sie eine Erklärung hinzufügen können. Das wäre schön für einen Anfänger.
Menuka Ishan

4
@ Menuka Erklärung: Jede Anfrage, die mit dem Pfad "/ resources / **" beginnt, wird einer Datei in einem Ordner "/ resources /" zugeordnet.
Krystian

21

Feder 5

Ab Frühjahr 5 können Sie dazu einfach die WebMvcConfigurer- Schnittstelle implementieren .

Zum Beispiel:

@Configuration
@EnableWebMvc
public class MyApplication implements WebMvcConfigurer {

    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}

Siehe veraltete Nachricht in: WebMvcConfigurerAdapter

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.