1

ここに画像の説明を入力

春の依存性注入を学んでいます。私は2種類のコードを持っています。1つは機能し、1つは機能しません...しかし、どちらもチュートリアルを作成した人にとっては機能します。

コメント付きのコードでは、以下に示すエラーが表示されます。

    @SuppressWarnings("deprecation")
public static void main(String[] args) {

    //ApplicationContext factory = new ClassPathXmlApplicationContext("Beans.xml");

    //The code below works
    BeanFactory factory = new XmlBeanFactory(new FileSystemResource("Beans.xml"));
    HelloWorld obj = (HelloWorld) factory.getBean("helloworld");

    obj.getMessage();
}

Beans.xml

 <?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xsi:schemaLocation="
           http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd           
       ">


    <bean id="helloworld" class="com.vulab.hellow.HelloWorld">
        <property name="message" value="Hello World" />
    </bean>
</beans>

ApplicationContext使用時のエラー メッセージ

スレッド「メイン」での例外 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parseing XML document from class path resource [Beans.xml]; ネストされた例外は java.io.FileNotFoundException: クラスパス リソース [Beans.xml] が存在しないため開けません

4

2 に答える 2

2

XmlBeanFactoryが機能するにはBeans.xml、呼び出し元のクラスと同じディレクトリにある必要があります。

簡単な代替手段はBeans.xml、クラスパスにあることを確認することです。それらをにコピーしてsrc\resourcesから使用できます:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = (HelloWorld) applicationContext.getBean("helloworld");

ClassPathXmlApplicationContext絶対ファイルの場所を指定する必要がないため、より便利です。

注: Spring 3.1以降XmlBeanFactory非推奨です。つまり、3.0 から変更する場合は、このような代替手段を使用する必要があります。

于 2013-01-09T16:34:06.297 に答える
1

の場合ClassPathXmlApplicationContext、Application Context XML ファイルが ClassPath で使用可能である必要があります。

標準の Maven ディレクトリ レイアウトを使用している場合は、Beans.xmlファイルをsrc/main/resources.

IDE から実行している場合 (スクリーンショットからは Eclipse を使用しているように見えますが、IDE を明示的に記述していません)、[プロパティ] -> [Java ビルド パス] に移動し、ビルド パスに追加するsrc/main/resources必要があります。

頑張ってください、これが役に立てば幸いです!

于 2013-01-09T16:38:57.830 に答える