tx: перерывы на основе аннотаций @Autowired в scala - PullRequest
1 голос
/ 01 апреля 2011

Я использую Spring + Scala 2.8. У меня есть компонент @Transactional (помеченный @Service), который включается весной через , и когда я запускаю tomcat, контроллер, который получает @Autowired с этим компонентом службы, не может найти автопровод кандидат. Я избивал себя, пытаясь выяснить, почему он не может найти объект-кандидат, когда объект @Service явно получал экземпляр (я мог видеть это через сообщения отладки log4j). В конце концов я решил упростить, прокомментировав , и вуаля! Веб-приложение запускается нормально.

Может ли кто-нибудь предоставить техническую причину, по которой это не работает? Я собираюсь попробовать @Qualifier, чтобы увидеть, если это "решает" проблему.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2011

Итак, я разобрался в своей проблеме. Это на самом деле, возможно, было "сломано" с Java, а также скала. Мой класс обслуживания состоял только из класса реализации и без интерфейса. Как только @Transactional прокси, классная пружина не смогла найти кандидата на автопрокат. Простое добавление интерфейса (или черты в scala) решило проблему.

0 голосов
/ 02 апреля 2011

Когда вы добавляете <tx:annotation-driven/> в вашу конфигурацию, это вызывает различные обертывания с прокси-классами (см. Документацию Spring по транзакциям ).Вероятно, это не очень хорошо работает с аннотацией @Transactional и Scala.

См. Использование Spring @Transactional в Scala

...