Contenu connexe
Similaire à Groovy简介 (20)
Groovy简介
- 4. HelloWorld 用 Java 编写的典型的 Hello World 示例如下所示: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } 用 Groovy 编写的 Hello World : println "Hello World!" 在这段代码周围没有类结构,而且也没有方法结构!我还使用 println 代替了 System.out.println 。
Notes de l'éditeur
- 工欲善其事,必先利其器 Groovy 并没有取代 Java ,而是作为 Java 的补充,它提供了更简单、更灵活的语法,可以在运行时动态地进行类型检查。您可以使用 Groovy 随意编写 Java 应用程序,连接 Java 模块,甚至扩展现有的 Java 应用程序 — 甚至可以用 Groovy 对 Java 代码进行单元测试。 Groovy 的美妙之处还在于,它能够比编写纯粹的 Java 代码更快地完成所有工作 — 有时候会快许多。
- Groovy 代码还能在运行时轻松地改变自己。这实际上意味着,能够在运行时轻松地为对象指定新方法和属性。这一编程领域称为元编程 。
- Java 的 HelloWorld 同样在 groovy 中运行自如。
- 事实上 Groovy 只是规则少一些
- assert 命令用来证明范围是 java.util.List 的实例
- assert 命令用来证明范围是 java.util.List 的实例
- assert 命令用来证明范围是 java.util.List 的实例
- 实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iterator 实例并直接操纵它,可以直接在集合上迭代。而且,通常放在循环构造内的行为(例如 for 循环体中 println )接下来要放在闭包内。
- 实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iterator 实例并直接操纵它,可以直接在集合上迭代。而且,通常放在循环构造内的行为(例如 for 循环体中 println )接下来要放在闭包内。
- 实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iterator 实例并直接操纵它,可以直接在集合上迭代。而且,通常放在循环构造内的行为(例如 for 循环体中 println )接下来要放在闭包内。
- 实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iterator 实例并直接操纵它,可以直接在集合上迭代。而且,通常放在循环构造内的行为(例如 for 循环体中 println )接下来要放在闭包内。
- 实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iterator 实例并直接操纵它,可以直接在集合上迭代。而且,通常放在循环构造内的行为(例如 for 循环体中 println )接下来要放在闭包内。
- delegate 委托在是一种常用设计模式,但在 java 中实现相对比较繁琐, groovy 直接在 GroovyObject 中已经实现了 delegate 模式,所以在 groovy 中应用 delegate 很方便。
- 目前实现的业务系统是 java 编写的,但是一些业务频繁变化又要求立刻生效,而且业务也比较复杂,一时不好抽象成规整的可复用 java 代码。于是考虑修改当前业务系统。基础业务和 web 界面还是用 java 相关技术实现,将比较动态和逻辑模糊的业务抽取出来,用 groovy 实现。 如果在应用程序正在运行时对 GroovyPdfGenerator.groovy 脚本做出更改, Spring 将检测到这一更改,并在运行时重新装载 pdfGenerator bean ,而不必重新启动。注意,只有达到规定的延迟时间, 并且 可刷新 bean 上发生方法调用,才会发生刷新检查。例如,假设 pdfGenerator bean 的刷新检查延时为 10 秒,但是连续 50 秒内没有发生方法调用。在这种情况下, Spring 会在 50 秒之后(而不是每过 10 秒)检查是否需要刷新。换句话说, Spring 不会积极地轮询脚本的更改;相反,它判断自上次方法调用后经过的时间,然后计算这段时间是否超过刷新检查延时。只有当经过的时间超过刷新检查延时, Spring 才检查脚本是否被更改,进而确定是否需要刷新。另一方面,假设 pdfGenerator bean 处于较重的负载下,每一秒钟它的方法被多次调用。如果 refresh-check-delay 为 10 秒,无论这个 bean 被使用多少次,它最快只能每 10 秒重新装载一次。所以,不需要担心 Spring 是否会因为积极地轮询 Groovy 脚本而消耗系统资源,它并没有这样做。