gpt4 book ai didi

grails - 如何浏览 Grails 核心源代码以更好地理解框架?

转载 作者:行者123 更新时间:2023-12-02 08:39:51 24 4
gpt4 key购买 nike

通常在 Spring Source Tool Suite IDE 或 Eclipse Maven 项目中,如果我想查看框架/库方法在幕后做什么,我可以 ctrl + 单击方法名称,它将带我到源代码。据我了解,许多 Grails 方法是在运行时动态添加的,因此 IDE 并不总是能够知道如何访问它们。否则,我可以在 Google、Github 或 API 文档上按包搜索该类。使用 Grails 核心源代码来更好地理解框架的最佳方法是什么?

例如,我想查看 Controller 中的响应方法是什么样子,以及当索引方法如下所示时,它如何将名为“clubInstanceList”的参数返回到我的俱乐部/索引 gsp:

def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond clubService.list(params), model:[clubInstanceCount: clubService.count()]
}

ctrl + 单击在 IDE 中不起作用,因为此方法是在运行时添加的。我已经在 github 上搜索了 Grails 核心源代码,但不知道 Controller 上此响应方法的包结构。

最佳答案

这可能不是一个简单的搜索,因为一些代码是在编译期间生成的,或者功能可以在运行时添加到您的类中。这是使用动态语言时所付出的代价。

动态运行时方法

当我需要找到一些不太明显的功能时,我首先尝试找到负责该功能的内部插件。在 STS 中,我执行 ctrl shift T 并搜索 *GrailsPlugin*。您可以在插件的 doWithDynamicMethods 闭包中检查运行时更改。

例如,Grails 有 ControllersGrailsPlugin 类,可为 Controller 类添加数据绑定(bind)功能。

搜索方法

由于我在这个插件描述符中没有找到与 respond 方法相关的任何内容,因此这可能是通过编译生成的。您可以使用 ctrl H 进行 Java 搜索,并在“搜索”框中标记 method。在 scope 标记 workspace 中,STS 也会查找 Grails 类。

答案

所以你的问题的答案是 ControllersRestApi 类,我使用“搜索方法”方法找到了它。

关于grails - 如何浏览 Grails 核心源代码以更好地理解框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048435/

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