2017-06-30 5 views
0

Ich habe ein Standardpaket namens com.voja.springtest und ein anderes namens com.voja.springtest.beans, wo ich eine beans.xml Datei habe.Datei mit ClassPathXmlApplicationContext nicht finden

ich es bekommen kann wie so FileSystemXmlApplicationContext mit:

ApplicationContext context = new FileSystemXmlApplicationContext("C:/Users/Voja/Desktop/_/vj/springtest/src/main/java/com/voja/springtest/beans/beans.xml"); 

Aber ClassPathXmlApplicationContext kann es nicht wie so finden (und es sollte ich pro Tutorial tue):

ApplicationContext context = new ClassPathXmlApplicationContext("com/voja/springtest/beans/beans.xml"); 

Warum?

Antwort

0

Sie falsch parh verwenden, sollte es in Ihrem Fall sein wie:

ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:beans.xml"); 

4.7.2.2 Der Classpath *: Präfix

Wenn ein XML-basierter Anwendungskontext konstruieren, ein Ort Zeichenfolge kann den speziellen Klassenpfad verwenden *: prefix:

Application ctx = neuer ClassPathXmlApplicationContext ("classpath *: conf/appContext.xml"); Dieses spezielle Präfix gibt an, dass alle Klassenpfadressourcen abgerufen werden müssen, die dem -angegebenen Namen entsprechen (intern geschieht dies im Wesentlichen über einen Aufruf von ClassLoader.getResources (...)) und dann zur endgültigen Anwendungskontextdefinition zusammengeführt.

The Classpath*: portability classpath*: prefix

+0

Dank, scheint dies es zu finden, aber jetzt beklagt es, dass es nicht die tatsächliche Bohne finden kann, und mit Filesystem hatte ich überhaupt kein Problem. Irgendeine Idee, warum Klassenpfad die XML-Datei aber nicht die Bohne finden kann, die darin definiert wird? Wiederum funktionierte es mit FileSystem. –

+1

Verschieben Sie diese Datei beans.xml in 'C:/Benutzer/Voja/Desktop/_/vj/federtest/src/main/resources'. Ressourcen - es ist der richtige Ort für die Konfiguration – xyz

+0

Funktioniert jetzt, danke! –

0

FileSystemXmlApplicationContext nimmt die XML-Datei aus absolutem Pfad zum Suchbegriff „Datei“ anhängen und auch durch Anhänge Stichwort „Classpath“ von Classpath holen kann. Sie die Datei wie unten

zugreifen können
ApplicationContext context = new FileSystemXmlApplicationContext("classpath:spring-app.xml"); 
Verwandte Themen