上記の意見には何か問題がある可能性があると思いFileSystemXmlApplicationContext
ます。ファイルシステム全体にアクセスできません。スキャンできるのはプロジェクトフォルダー全体だけです。私の結論を証明するために、最初に使用ClasspathXmlApplicationContext
してすべてが正常である例を作成します。 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)
そのため、FileSystemXmlApplicationContext は現在のプロジェクトのすべてのフォルダーのみを検出できます。たとえばconfig
、プロジェクトのルート ディレクトリの下に名前を付けたディレクトリを作成し、メイン クラスのコードを次のように変更できます。
ApplicationContext atx = new FileSystemXmlApplicationContext("/config/beans.xml");
そして、すべてが再びうまくいくでしょう。ですから、sinuhepop のように言ったのであれば、何かを変更する必要があると思います。