打算再我的项目中引入静态页面的生成,因为这几天看代码看的太紧张了,于是想去实现他。首先想到的是Grails如何来进行controller的执行,因为我的这个job需要Domain Class的支持,进一步说就是我需要能让程序可以享受Domain Class的Domain Class Methods的便利,不仅如此,还可以保证Domain Class代码的单纯性,想想也是,既然Grails提供了Spring+Hibernate的解决方案,为什么不用他呢。吼吼。
于是开始看源代码,不得不说的是,Eclipse的引用功能的确是非常的贴心,至少读源代码方面是一流的,于是从DomainClassMethods->GrailsDomainConfigurationUtil->ConfigurableLocalSessionFactoryBean->SpringConfig->GrailsDispatcherServlet,OK!路子走通了,那么来看看GrailsDispatcherServlet里面做些什么呢?于是仔细look...发现了一个很重要的类GrailsApplication,可以说这个类是Grails的基础,毫无疑问,他可以脱离web server环境,因为grails有个Console类,就是直接引用GrailsApplication的,相当于Grails可以在其他应用程序中跑起来!
当然这个发现并没给我带来多大帮助。。。我还是需要从GroovyPageServlet开始分析,到底Grails是如何建立web环境,并且执行controller的原理。于是进入GroovyPageServlet,马上就可以跟踪到SimpleGrailsControllerHelper这里,这里是Grails处理controller的地方,于是发现了两个很重要的method: handleURI(),handleAction(),自此基本上可以解决静态页面生成的问题了。
但是,这时猛然想起,grails自己本身就支持job,而且是大名鼎鼎的Quartz!亏大了。。于是马上打开User Guide,找到Job Scheduling (Quartz)这个章节,看了看,非常简单,grails create-job就可以搞定,无外乎在项目下面建立一个jobs目录,然后写个类,上面提供了一个非常简单的example:
class MyJob {
def startDelay = 100
def timeout = 1000
def name = "MyJob"
def group = "MyGroup"
def execute(){
print "Job run!"
}
}
可惜的是,这个example是错误的!这个也是我出师不利以后调试源代码才发现的,grails 0.2中,"startDelay"和"timeout"这两个field是用String.class来解析的,如果写成number的时候,你的schedule是十分钟执行一次,很郁闷,因为他缺省的就是6000000,呵呵。正确的写法是:
class MyJob {
def startDelay = "100"
def timeout = "1000"
def name = "MyJob"
def group = "MyGroup"
def execute(){
print "Job run!"
}
}
就这么简单,不过在佩服grails项目组的同时,也稍微鄙视一下粗心的Micha?? K??ujszo,(抱歉,我这里是乱码),这个错误实在不该犯!
另外,在job里面可以使用Domain Class的Domain Class Methods,这可是个好东东,很贴心的设计。
分享到:
相关推荐
Grails Grails Grails Grails Grails
Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南
Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。
Grails入门指南中文pdf -- 针对grails1.0.4更新,附加idea8 开发grails的流程
Grails1.1中文文档
grails+Xfire webservice
在学习任何东西之前,最重要的是培养兴趣,Groovy世界最耀眼的技术之一--Grails相信大家早已耳闻,我将通过Grails实战系列文章 向您展现Grails的迷人风采,使您感受到Grails的魅力,以至疯狂地爱上Grails,并坠入...
grails-2.1.zip.001
详细讲解grails开发环境配置。 详细讲解grails连接mysql数据库,crud开发
Grails专为下一代JavaWeb应用程序而设计的框架,其借助于Groovy动态语言,使Web开发变得简单而方便。Grails尽量为更多现有的Java项目创建一个全面的框架(不仅局限于视图处理),这和当前一些Java框架提供给用户的一...
Grails 中文 参考手册
grails grails入门经典 grails入门 grails例子 grails资料 通过自学一点点积累起来的,相信对你有帮助的。
Grails 1.3.7英文版官方参考手册,学习Grails的权威指南
grails3.2.8 part1
grails 中文文档+grails-fckeditor-0.9.5.zip插件
grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件...
grails-2.3.6
grails参考文档 The Grails Framework - Reference Documentation Authors: Graeme Rocher, Marc Palmer Version: 1.0.3
比较难找的grails的资料,我也是找了很久才找到的。需要grails相关的拿走