org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named available
Почему спринг не может найти бин savingAccount1 когда я пытаюсь добавить его в лист для client1?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="savingAccount1 " class="com.luxoft.bankapp.model.SavingAccount">
<constructor-arg name="initialBalance" value="1000"/>
</bean>
<bean id="checkingAccount1" class="com.luxoft.bankapp.model.CheckingAccount">
<property name="overdraft" value="1000"/>
</bean>
<bean id="checkingAccount2" class="com.luxoft.bankapp.model.CheckingAccount">
<property name="overdraft" value="1500"/>
</bean>
<bean id="client1" class="com.luxoft.bankapp.model.Client">
<constructor-arg name="name" value="Jonny Bravo"/>
<constructor-arg name="gender">
<value type="com.luxoft.bankapp.model.Client$Gender">MALE</value>
</constructor-arg>
<property name="repository" ref="repository"/>
<property name="accounts">
<list>
<ref bean="savingAccount1"/>
<ref bean="checkingAccount1"/>
</list>
</property>
</bean>
<bean id="client2" class="com.luxoft.bankapp.model.Client">
<constructor-arg name="name" value="Adam Budzinski"/>
<constructor-arg name="gender">
<value type="com.luxoft.bankapp.model.Client$Gender">MALE</value>
</constructor-arg>
<property name="repository" ref="repository"/>
<property name="accounts">
<list>
<ref bean="checkingAccount2"/>
</list>
</property>
</bean>
</beans>
Логи с ошибкой
WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'client1' defined in class path resource [test-clients.xml]: Cannot resolve reference to bean 'savingAccount1' while setting bean property 'accounts' with key [0]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'savingAccount1' available
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'client1' defined in class path resource [test-clients.xml]: Cannot resolve reference to bean 'savingAccount1' while setting bean property 'accounts' with key [0]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'savingAccount1' available
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1699)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95)
at BankApplication.main(BankApplication.java:23)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'savingAccount1' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:805)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1279)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
... 17 more
Ответы (1 шт):
Автор решения: Мазанов Кирилл
→ Ссылка
Попробуйте добавить в applicationContext.xml <context:annotation-config /> Если не поможет - скиньте исходный код классов