は、私は上記の意見は、FileSystemXmlApplicationContext
はあなたの全体のファイルシステムにアクセスすることはできません間違った何かを持っているかもしれないと思う、私は例を作る私の結論を証明するためfolder.Inプロジェクト全体はまず、それだけでスキャンできるものですClasspathXmlApplicationContext
を使用して、すべてが正常で、2回目はbeans.xmlファイルをデスクトップフォルダに移動するため、プロジェクトのヒイラキーにbeans.xmlファイルがなく、ClassPathXmlApplicationContextをFileSytemXmlApplicationContext
に変更して何か問題が起きます。
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は現在のプロジェクトのすべてのフォルダのみを検出できます。たとえば、あなたは、プロジェクトのルートディレクトリの下にconfig
という名前のディレクトリを作り、あなたは以下のように自分のメインクラスのコードを変更することができます。
ApplicationContext atx = new FileSystemXmlApplicationContext("/config/beans.xml");
、すべてがOKを再度ます。だから、もしsinuhepopのようなものがあれば、何かを変える必要があると私は思う。
に設定されている限り、完全なパスを設定する必要がありDONOT。内部的には、デフォルトでXmlWebApplicationContentのような異なる動作があり、WEB-INFフォルダ内のapplicationContext.xmlが検索されます。また、異なる場所を設定するためのinitパラメータも必要です。基本的には、XMLファイルを読み込むために異なるアプローチを使用します。 – Seshagiri