WEB开发网
开发学院软件开发Java Groovy 使 Spring 更出色,第 2 部分: 在运行时改... 阅读

Groovy 使 Spring 更出色,第 2 部分: 在运行时改变应用程序的行为

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 2 显示了 pdfGenerator bean,它被配置了 10 秒(10,000 毫秒)的刷新检查延迟,Groovy 使 Spring 更出色,第 2 部分: 在运行时改变应用程序的行为(3),添加 refresh-check-delay,之后,所以,不需要担心 Spring 是否会因为

清单 2 显示了 pdfGenerator bean,它被配置了 10 秒(10,000 毫秒)的刷新检查延迟。添加 refresh-check-delay,之后,Spring 配置这个 bean,使之在底层 GroovyPdfGenerator.groovy 脚本文件改变时自动刷新。


清单 2. 将 refresh-check-delay 添加到脚本化的 bean 定义中

<lang:groovy id="pdfGenerator" 
       script-source="classpath:groovierspring/GroovyPdfGenerator.groovy" 
       refresh-check-delay="10000"> 
  <lang:property name="companyName" value="Refreshable Groovy Bookstore"/> 
</lang: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 脚本而消耗系统资源,它并没有这样做。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Groovy Spring 出色

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接