la création de hashmap au printemps
Je suis entrain de créer un bean est le printemps comme suit
<bean id="xyz" class ="java.util.HashMap">
<constructor-arg value ="${somehashMapPaceholder}"
</bean>
lorsque je l'exécute j'obtiens l'erreur suivante:
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)
Je ne veux pas créer hasmp l'aide pour une autre raison.
- peut ${somehashMapPaceholder} seul point à la Chaîne? ou peut-il point quelque autre table de hachage ? ${somehashMapPaceholder} est une referance à certains autres hashmap dans mon cas
- Pourriez-vous nous donner un exemple plus complet, en particulier là où ne
${somehashMapPaceholder}
viennent et quel est le contenu? Pourquoi n'utilisez-vous pas la réf au lieu de la valeur? - il somes de certains, il en place il y a quelques depedency qui le fait.Mais je suis pas sûr si ${somehashMapPaceholder} peut contenir une référence à une autre carte? Peut un espace réservé à un point à un autre de la carte?
- peut-u s'il vous plaît m'aider avec ce
- Vous pouvez utiliser
ref
attribut de se référer à un autre bean dans le contexte. - je ne créer que des haricots.Automatiquement ajoutés comme je l'ai utiliser une autre lib.
- Il n'y a pas une telle chose comme automatiquement disponible. S'il vous plaît montrer exactement ce que vous voulez dire.
- mon application fonctionne à l'intérieur d'un conteneur qui effectue des tâches complexes. Maintenant, si j'utilise un tel espace réservé pour la chaîne, il fonctionne.Mais pour l'ap de ses pas. je vais essayer d'utiliser <constructor-arg ref="{placholder} /> .
Vous devez vous connecter pour publier un commentaire.
vous devez donner le numéro d'index/nom du constructeur args, tout en donnant de la valeur pour le constructeur.
j'.e comme ci-dessous
Une HashMap singleton peut être mis en œuvre au printemps contexte de l'application et partagées à travers le CIO à l'aide de la suite util:carte. Tout d'abord inclure xmlns:util dans le schéma.
Ensuite définir votre partagée carte:
Puis dans votre code source java:
Ce met en place de votre table de hachage de la clé à Chaîne, avec la valeur de la classe que vous définissez. Si vous vouliez de la valeur à certains autres POJO ou de la classe à partir d'une autre ressource, il suffit d'utiliser cette classe comme type de valeur. La classe qui injecte de la carte, puis de remplir et d'accéder à la carte.
À l'aide de Printemps STS dans Eclipse, vous pouvez également le configurer à l'aide de la belle bean éditeur avec votre application context.xml fichier. Voir l'image ci-dessous.
Espère que cette aide.