簡體   English   中英

org.springframework.beans.factory.CannotLoadBeanClassException

[英]org.springframework.beans.factory.CannotLoadBeanClassException

我發現一個簡單的問題並尋求幫助。 有異常消息:在上下文初始化期間遇到異常-取消刷新嘗試:org.springframework.beans.factory.CannotLoadBeanClassException:找不到在類路徑資源[beans.xml]中定義的名稱為“ us”的bean的類[factory]。 嵌套的異常是java.lang.ClassNotFoundException:factory

這是接口:包net.runze.spr1.factory;

public interface Person {
    public void testBeing();
}

這是班cn

package net.runze.spr1.factory;

public class CN implements Person {

    @Override
    public void testBeing() {
        System.out.println("china");
    }

}

這是我們的課程:

package net.runze.spr1.factory;

public class US implements Person {

    @Override
    public void testBeing() {
        System.out.println("lalalala US");
    }

}

這是工廠:

package net.runze.spr1.factory;

public class PersonFactory {
    public Person getPerson(String arg) {
        if ("cn".equalsIgnoreCase(arg)) {
             return new CN();
        } else {
             return new US();
        }
    }
}

這是我的xml

<bean id="factory" class="net.runze.spr1.factory.PersonFactory"/>

<bean id="cn" 
        factory-bean="factory" 
        factory-method="getPerson">
    <constructor-arg value="cn"></constructor-arg>
</bean>

<bean id="us" 
        class="factory" 
        factory-method="getPerson">
    <constructor-arg value="us"></constructor-arg>
</bean>

這是我的測試課:

@Test
public void instanceFactorytest1() {
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

    Person b1 = context.getBean("cn", US.class);
    Person b2 = context.getBean("us", US.class);

    b1.testBeing();
    b2.testBeing();
}

非常感謝你

現在我知道。 真傻~~我在xml文件中配置錯誤

<bean id="us"...> this should be "factory-bean" not class.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM