我正在练习做一个四季豆。 这是非常简单的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());
}
我在这里做什么错了?
答案 0 :(得分:3)
AnnotationConfigApplicationContext
的使用在您的上下文中不正确。您应该使用ClassPathXmlApplicationContext
。在此处检查AnnotationConfigApplicationContext
的文档:
所以请尝试以下方法:
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(Configloc);