来自 TagLib 开销的 Grails 服务调用

标签 grails service taglib overhead method-call

我有一个非常简单的 taglib 和服务:

class TestTagLib {
    FooService fooService

    static namespace = "bar"

    def test = {
        out << "text"
    }
}

class FooService {
    //This is an empty method that does absolutely nothing
    void foo() { }
}

如果我在一个页面上重复这个 taglib 20 次,它会立即执行。但是现在如果调用该服务:
...

fooService.foo()
out << "test"

...

突然,这 20 个标签库导致页面加载需要 2 秒。服务调用的开销如此之高,这似乎不太正确……或者是吗?我什至该如何调试呢?

最佳答案

服务方法默认是事务性的。因此,对于 fooService.foo() 的每个调用您将获得完整的数据库事务创建和提交的开销。

关于来自 TagLib 开销的 Grails 服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17821567/

相关文章:

json - Grails 3个人资料,JSON渲染和自带一对多

wcf - "Domain Services"是什么意思?

c++ - 来自 MSDN 的 InternetGetConnectedState 和 "it should not be used from a service"语句

java - 启动时启动服务 : why it doens't work?

https - portlet:renderUrl - 如何使 URL 相对?

grails - 将值注入(inject)内部标签

mysql - hibernate中带注释的查询

java - 帮助解决失败的 Grails 测试 - 域方法不起作用?

grails - 从 Controller 发送多个选定项到 View

grails - 使用Grails和Acegi插件捕获登录/注销和登录尝试