【发布时间】:2012-10-13 19:56:38
【问题描述】:
我正在尝试一些示例 Spring 代码。在这种情况下,我试图创建一个字符串并在另一个 bean 中使用它。另一个bean在一个类中设置字符串,然后当我希望调用该类时它应该打印出消息。但是,我收到一条错误消息。请有人建议这里可能有什么问题吗?
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("MyConfig.xml");
SetterMessage message = (SetterMessage) applicationContext.getBean("setStringFromBean");
System.out.println(message.getMessage());
}
public class SetterMessage {
private String message = null;
/**
* Gets message.
*/
public String getMessage() {
return message;
}
/**
* Sets message.
*/
public void setMessage(String message) {
this.message = message;
}
}
<bean id="createString" class="java.lang.String">
<constructor-arg value="Hello from a bean"</constructor-arg>
</bean>
<bean id="setStringFromBean" class="SetterMessage">
<property name="message" ref="createString" />
</bean>
错误是
2012 年 10 月 23 日晚上 8:36:58 org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO:正在刷新 org.springframework.context.support.ClassPathXmlApplicationContext@4447393f: 启动日期 [Tue Oct 23 20:36:58 BST 2012];上下文层次的根 2012 年 10 月 23 日晚上 8:36:58 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO:从类路径加载 XML bean 定义 资源 [MyConfig.xml] 2012 年 10 月 23 日晚上 8:36:58 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO:预实例化单例 org.springframework.beans.factory.support.DefaultListableBeanFactory@643ae941: 定义bean [defaultMessage,constructorBean,setterMessage];的根 线程“main”中的工厂层次结构异常 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 名为“setStringFromBean”的 bean 定义在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:549) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1106) 在 Main.main(Main.java:13)
【问题讨论】: