gpt4 book ai didi

grails - 从 Grails 过滤器构造函数访问应用程序上下文

转载 作者:行者123 更新时间:2023-12-02 14:04:14 25 4
gpt4 key购买 nike

如何访问 应用上下文 来自 Grails 过滤器 .我可以通过使用以下方法从 Controller 执行此操作:

def ctx = ApplicationHolder.application.mainContext

但在过滤器中,ctx 为空。

在这种情况下,我专门尝试在过滤器的构造函数中访问应用程序上下文。

最佳答案

您不应该使用持有者类 - 它们在 2.0 中已被弃用,并将在 future 的版本中删除。

从 Controller 、过滤器、服务等访问应用程序上下文的最佳方式是为 GrailsApplication 添加依赖注入(inject),即

def grailsApplication

然后你可以通过
def ctx = grailsApplication.mainContext

在与 Spring bean 相关的构造函数中进行工作是不寻常的,因此如果可能,您应该重构。 Grails 工件是 Spring bean,因此它们在构建应用程序上下文时被实例化。

Controller 有点不同,因为它们不像大多数 bean 那样是单例的,所以当它们被构造时(每个请求一个),持有者已被填充。但一般来说,您应该避免在构造函数中执行 GORM 工作、访问应用程序上下文等,因为事情不太可能已经连接好。

关于grails - 从 Grails 过滤器构造函数访问应用程序上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com