【发布时间】:2013-09-28 18:12:03
【问题描述】:
我正在创建的bean是spring如下
<bean id="xyz" class ="java.util.HashMap">
<constructor-arg value ="${somehashMapPaceholder}"
</bean>
当我运行它时,我得到如下错误:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personToDept' defined in class path resource [spring-configuration/application/appconfig-beans.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
由于其他原因,我不想使用创建 hasmp。
【问题讨论】:
-
${somehashMapPaceholder} 可以只指向字符串吗?还是可以指向其他哈希图?在我的例子中,${somehashMapPaceholder} 是对其他哈希图的引用
-
你能不能给我们一个更完整的例子,特别是
${somehashMapPaceholder}来自哪里,内容是什么?为什么不使用 ref 而不是 value? -
它有些地方有一些依赖性。但不确定 ${somehashMapPaceholder} 是否可以引用另一张地图?占位符可以指向其他地图吗?
-
@LeonardBrünings 你能帮我解决这个问题吗
-
您可以使用
ref属性来引用上下文中的另一个bean。
标签: java spring dependency-injection hashmap