Я добавил некоторые файлы groovy в существующий проект java + spring.
Проект работал (т.е. прошел тесты).
Я добавил "@Transactional" к одному из методов groovy итесты прервались.
(Чтобы добавить @Transactional, мне пришлось изменить аннотацию класса с @Service на @Controller, в противном случае @Transactional был проигнорирован - чёрт).
Я начал получать исключения
Различных исключений
- @ Autowired ничего не нашел - NoSuchBeanDefinitionException
- добавление @Qualifier ("loadTransactions") дало мне то же самое
- @ Resource дал BeanNotOfRequiredTypeException: бин с именем loadTransactions должен иметь тип[net.idt.workflow.LoadTransactions], но на самом деле было типа [$ Proxy33]
(я считаю, что это лучшее сообщение об ошибке, чем @Autowired, которое я всегда использую :-()
Я изменилтип «Object» и инъекция @Resource работали (меня немного раздражает @Autowired - поэтому я не стал пробовать это с Object: - /)
Затем я использовал следующий классный код:
loadTransactions.metaClass.object.process ();
, который, я чувствую, «воняет», но РАБОТАЕТ.
У меня такой вопрос: как получить красивый код, который я ожидал, например
loadTransactions.process ();
Мне не нужно было знать, что @Transactional использует какой-то прокси
Спасибо за вашhelp
Shalom Deitch