Когда вы используете @Transactional
, Spring создаст прокси для аннотированного класса и будет заменен исходным объектом.Алгоритм создания прокси по умолчанию это использовать прокси JDK, которые полагаются на интерфейсы.В интерфейсе обработчика нет свойства getter / setter для свойства startPage, следовательно, исключение.
Вы можете добавить getter / setter к интерфейсу или использовать прокси на основе классов.Для обеспечения использования прокси-серверов cglib, указанных ниже в вашем файле контекста:
<tx:annotation-driven proxy-target-class="true"/>