creo opinión anterior puede tener algo mal, FileSystemXmlApplicationContext
no puede acceder a su sistema de archivos entero, lo que sólo puede escanear todo el proyecto es folder.In fin de demostrar mi conclusión hago un ejemplo, el primer utilizando ClasspathXmlApplicationContext
y todo es normal, la segunda vez que se mueve el archivo beans.xml a mi carpeta del escritorio, por lo que no hay ningún archivo beans.xml en el hirachy proyecto y cambiar ClassPathXmlApplicationContext a FileSytemXmlApplicationContext
y algo va mal, vestigios de error a continuación:
INFO: Loading XML bean definitions from file [/Users/crabime/Development/IdeaProjects/springInterview/Users/crabime/Desktop/beans.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [/Users/crabime/Development/IdeaProjects/springInterview/Users/crabime/Desktop/beans.xml]; nested exception is java.io.FileNotFoundException: Users/crabime/Desktop/beans.xml (No such file or directory)
So F ileSystemXmlApplicationContext solo puede detectar todas las carpetas del proyecto actual. Por ejemplo haces un directorio que nombró config
bajo el directorio raíz del proyecto, y se puede cambiar el código de la clase principal, como a continuación:
ApplicationContext atx = new FileSystemXmlApplicationContext("/config/beans.xml");
y todo estará bien de nuevo. Entonces, si todos, como sinuhepop, dijeran, creo que debería haber algo que cambiar.
Usted ya se ha descrito la forma en que son diferentes en uso.Internamente tienen comportamientos diferentes, como XmlWebApplicationContent de forma predeterminada buscará applicationContext.xml en la carpeta WEB-INF. Y también toma el parámetro init para configurar diferentes ubicaciones. Básicamente, usarán diferentes enfoques para cargar los archivos XML. – Seshagiri