【问题标题】:Groovy - AST Transformations, a practical exampleGroovy - AST 转换,一个实际的例子
【发布时间】:2010-02-04 22:59:30
【问题描述】:

AST Transformations 在 Groovy 中实现。使用 AST 转换的实际示例是什么?

【问题讨论】:

    标签: groovy abstract-syntax-tree


    【解决方案1】:

    This page 有实际使用示例: @Singleton、@Lazy、@Immutable、@Delegate、@Newify、@Category、@Mixin、@PackageScope

    【讨论】:

      【解决方案2】:

      场景如下:

      • 授权检查 - 通过从上下文检查角色来确保安全
      • 打印调用方法的参数值
      • 断言参数不为空或任何验证
      • 检查方法的各种入口条件/前置条件
      • 通用 AOP 样式 BeforeMethod() 实现
      • 创建一个方法并将其标记为作为可运行或主方法运行

      看看我在AST AOPAST Param not null 的博文

      希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        该页面上提供了大多数使用 AST 转换的实际示例。我经常使用@Delegate 委托给另一个类或使用@Lazy 进行延迟加载。 @Grab 非常适合从 Maven/ivy 存储库中提取依赖项。所有这些都基于 AST 转换并且是核心语言的一部分。

        您也可以直接使用转换,但您想要的大部分东西都已经构建好了。您可以用其他语言做您可能想用 AOP 做的事情。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-17
          • 1970-01-01
          • 2023-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多