Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有@Transactional-injection returns的Java Spring和Groovy应用程序;委托书;而不是必需的类型_Java_Spring_Groovy_Code Injection_Transactional - Fatal编程技术网

带有@Transactional-injection returns的Java Spring和Groovy应用程序;委托书;而不是必需的类型

带有@Transactional-injection returns的Java Spring和Groovy应用程序;委托书;而不是必需的类型,java,spring,groovy,code-injection,transactional,Java,Spring,Groovy,Code Injection,Transactional,我已将一些groovy文件添加到现有的java+spring项目中。 项目正在运行(即通过测试)。 我在一个groovy方法中添加了“@Transactional”,测试失败了。 (为了添加@Transactional,我必须将类上的注释从@Service更改为@Controller,否则@Transactional被忽略了-真恶心)。 我开始出现异常 异常变化@Autowired未找到任何内容-NoSuchBeanDefinitionException 添加@Qualifier(“loadTr

我已将一些groovy文件添加到现有的java+spring项目中。
项目正在运行(即通过测试)。

我在一个groovy方法中添加了“@Transactional”,测试失败了。
(为了添加@Transactional,我必须将类上的注释从@Service更改为@Controller,否则@Transactional被忽略了-真恶心)。

我开始出现异常
异常变化

  • @Autowired未找到任何内容-NoSuchBeanDefinitionException
  • 添加@Qualifier(“loadTransactions”)给了我同样的结果
  • @Resource给出了BeanNotOfRequiredTypeException:名为“loadTransactions”的Bean必须是[net.idt.workflow.loadTransactions]类型,但实际上是[$Proxy33]类型
    (我发现这是一条比我经常使用的@Autowired更好的错误消息:-() 我将类型更改为“Object”,并且@Resource注入工作正常(我对@Autowired有点恼火,所以我没有费心用Object:-/)尝试这一点 然后我使用了下面的groovy代码:
    loadTransactions.metaClass.object.process();
    我觉得它“很臭”,但很有效。

    我的问题是:如何获得我期望的好代码,即。
    loadTransactions.process();
    我不必知道@Transactional正在使用某种代理 谢谢你的帮助
    Shalom Deitch

    在application-context.xml中将proxy target class=“true”添加到tx:annotation-driven标记中工作正常在application-context.xml中将proxy target class=“true”添加到tx:annotation-driven标记中工作正常