Spring-Boot-Zugriff auf statische Ressourcen fehlt scr / main / resources
Arbeite ich an einer Spring-Boot-Anwendung. Muss ich parse eine XML-Datei (countries.xml) auf der Startseite. Das problem ist, dass ich nicht verstehen, wo zu setzen, so dass ich konnte auf ihn zugreifen.
Meine Ordner Struktur ist
ProjectDirectory/src/main/java
ProjectDirectory/src/main/resources/countries.xml
Meine erste Idee war es in src/main/resources, aber wenn ich versuche, eine Datei erstellen (countries.xml) bekomme ich eine NPE und der stacktrace zeigt, dass meine Datei sah in den Projektordner (also src/main/resources/nicht Hinzugefügt). Ich habe versucht, erstellen Sie die Datei (resources/countries.xml) und der Pfad würde wie folgt Aussehen ProjectDirectory/resources/countries.xml (also wieder src/main wird nicht Hinzugefügt).
Habe ich versucht, indem diese mit keinem Ergebnis
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
super.addResourceHandlers(registry);
}
Weiß ich, dass ich hinzufügen src/main/manuell, aber ich möchte verstehen, warum es nicht so funktioniert, wie es muss. Ich habe auch versucht Beispiele mit ResourceLoader - mit dem gleichen nicht-Ergebnis.
Konnte jeder jeden schlagen, was das problem ist?
UPDATE:
Nur für zukünftige Referenzen - nachdem das Projekt zu erstellen, stieß ich auf problem mit dem Zugriff auf Datei, also änderte ich die Datei InputStream
InputStream is = new ClassPathResource("countries.xml").getInputStream();
InformationsquelleAutor der Frage lenach87 | 2016-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur verwenden, Feder Typ ClassPathResource.
Solange diese Datei ist irgendwo auf classpath Frühjahr wird es finden. Dies kann
src/main/resources
während der Entwicklung und Erprobung. In der Produktion, kann es sein, laufende Verzeichnis.InformationsquelleAutor der Antwort luboskrnac
Um die Dateien in den classpath :
Lesen Sie die Datei onStartup verwenden
@PostConstruct
:Hier ist ein Kleines Beispiel für das Lesen einer XML-Datei auf den Frühling Starten App starten.
InformationsquelleAutor der Antwort Sanjay Rawat
Während der Arbeit mit Spring-Boot-Anwendung, ist es schwierig, die classpath-Ressourcen mithilfe von
resource.getFile()
wenn es bereitgestellt wird als JAR, da ich vor dem gleichen Problem.Dieser scan aufgelöst werden, mit Strom, finden Sie heraus, alle Ressourcen, die irgendwo im classpath.
Unten ist das code-snippet für das gleiche -
InformationsquelleAutor der Antwort Sachchidanand Singh