Spring Bean设置不起作用,没有这样的bean

时间:2018-07-20 04:32:54

标签: java spring spring-boot javabeans

我正在练习做一个四季豆。 这是非常简单的bean设置,但一直显示错误,

NoSuchBeanDefinitionException: No bean named 'bye2' available

这是我的root-context.xml文件

<bean id="bye2" class="com.jun.test.Bye2">
    <property name="one" value="one" />
    <property name="two" value="two" />
</bean>

这是Bean类,

public class Bye2 {

private String one;
private String two;

public Bye2() {
}

public String getOne() {
    return one;
}

public void setOne(String one) {
    this.one = one;
}

public String getTwo() {
    return two;
}

public void setTwo(String two) {
    this.two = two;
}

这是调用bean的主要方法。

public class ByeMain {

    public static void main(String[] args) {
        String Configloc = "classpath:root-context.xml";
        ApplicationContext ctx = new AnnotationConfigApplicationContext(Configloc);
        Bye2 bye2 = ctx.getBean("bye2", Bye2.class);
        bye2.setOne("one");
        bye2.setTwo("Two");
        System.out.println(bye2.getOne());
        System.out.println(bye2.getTwo());
    }

我在这里做什么错了?

1 个答案:

答案 0 :(得分:3)

AnnotationConfigApplicationContext的使用在您的上下文中不正确。您应该使用ClassPathXmlApplicationContext。在此处检查AnnotationConfigApplicationContext的文档:

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/AnnotationConfigApplicationContext.html

所以请尝试以下方法:

AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(Configloc);