Spring Bean недоступен для записи или имеет неверный метод установки - PullRequest
0 голосов
/ 10 марта 2020

Я экспериментирую с Spring, я слежу за книгой: Spring: записная книжка разработчика. Я получаю эту ошибку:

Причина: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'validateFile', определенным в ресурсе пути к классу [batch-config.xml]: Ошибка установки свойства ценности; вложенное исключение - org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'CustomersDAO' класса компонента [com.emp.ValidateCustomer]: свойство компонента BeansDAO недоступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика типу возвращаемого значения получателя?

Ниже приведен мой пакетный конфиг. xml: -

<bean id="validateFile" class="com.emp.ValidateCustomer" >

    <property name="customersDAO">
        <bean class="com.emp.dao.CustomerDao">
                <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
    </property>

     <bean id="sessionFactory"  class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="customerdb"/>
    <property name="packagesToScan" value="com.emp" />
    <property name="hibernateProperties">
        <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
                <prop key="hibernate.jdbc.batch_size">50</prop>
                <prop key="hibernate.default_batch_fetch_size">50</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.use_sql_comments">false</prop>
                <prop key="hibernate.generate_statistics">false</prop>
                <prop key="hibernate.format_sql">false</prop>
                <prop key="hibernate.hbm2ddl.auto">false</prop>
                <prop key="hibernate.enable_lazy_load_no_trans">true</prop>
            </props>
    </property>
</bean> 

</bean>

Ниже указано CustomersDao. java: -

@Repository
public class CustomersDao {



    @SuppressWarnings("deprecation")
    private HibernateTemplate hibernateTemplate=null;



    @Autowired
    @Qualifier("sessionFactory")
    public void setSessionFactory(SessionFactory sessionFactory) {
        hibernateTemplate = new HibernateTemplate(sessionFactory);
}
}


And in ValidateCustomer.java:-

    @Autowired
    private CustomersDao customersDAO;

Пожалуйста, помогите.

1 Ответ

1 голос
/ 27 марта 2020

Как говорит @MarcosBarbero, не видя больше ValidateCustomer. java, невозможно определиться с проблемой.

Какие аннотации есть в классе ValidateCustomer? У меня нет проблем с Autowired для частного свойства, когда включающий класс является компонентом или службой. Если нет, то есть ли у вас установщик c? Свойство не публикуется c, если установщик не публикуется c, Spring не сможет его установить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...