Моя конфигурация XML включает следующие определения bean-компонентов:
<bean id="abstractFormAction" class="staffing.server.action.form.AbstractFormAction" abstract="true" parent="baseAction">
<property name="volunteerSaver" ref="volunteerSaver"/>
<property name="emailSender" ref="emailSender"/>
<property name="closed" value="${form.closed}"/>
</bean>
<bean id="volunteerFormAction" class="staffing.server.action.form.VolunteerFormAction" parent="abstractFormAction">
<property name="captchaGenerator" ref="captcha"/>
</bean>
Указывая, что VolunteerFormAction является конкретной реализацией AbstactFormAction и наследует свойства AbstactFormAction.
В AbstractFormAction я объявляю следующие свойства:
@Autowired protected VolunteerSaver volunteerSaver;
@Autowired protected EmailSender emailSender;
@Autowired protected boolean closed;
При попытке развернуть возникает следующее исключение:
org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем 'volunteerFormAction': не удалось ввести автоматически подключенные зависимости; вложенное исключение - org.springframework.beans.factory.BeanCreationException: не удалось автоматически подключить поле: protected boolean staffing.server.action.form.AbstractFormAction.closed; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: для зависимости не найдено подходящего bean-компонента типа [boolean]: ожидается как минимум 1 bean-компонент, который квалифицируется как кандидат autowire для этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)}
Кажется, он жалуется, что не может найти bean-компонент byte boolean. Но зачем ему нужен bean-компонент, если свойство было определено как «закрытое» по значению, а не по ссылке?