整合Java 6 脚本、Groovy实现动态MVC模式(一)
【IT168 专稿】一个有弹性的和动态的开发环境正在受到前所未有的关注,甚至连脚本语言也显现出这方面的特性,这也正是我们所需要的,也就是说,我们永远需要建立易维护,并且可满足我们需求的应用程序。如果我们要想使用脚本语言参与进来,我想我们应该考虑一下Java SE 6所提供的一个新的脚本API:一个与语言无关的允许开发人员在Java代码中使用脚本语言的框架。使用这套新API,我们不仅可以利用脚本语言的特性,而且还能使用很多和Java相关器工具。
在本文中,我们提供了一个实例,这个实例将尽可能体现这套API的特性。并且使用这套API实现一个基于Model View Controller(MVC)模式的Web应用程序,这个程序同时还使用了Groovy框架(一个基于Java平台的动态脚本语言,Groovy负责实现商业逻辑,也就是MVC中的M层)。并且使用了不同的技术来实现MVC中的View层。对于控制层(Controller)层来说,我们使用WebLEAF,这是一个用于开发基于MVC模式的Web程序的开源框架。为了使这个例子更容易部署和运行,我们使用了一个基于Java的数据库:HSQLDB,这个数据库允许的们只通过两个文本文件来创建一个简单的数据库。为了实现可以产生HTML用户接口的view层,在本文中我们采用了XSLT技术,这是一种可以将XML文档转换成另外一种形式的语言,同时还使用了FreeMarker,这是一个流行的处理XML的模板引擎,如它可以使XML作为输入数据变得很容易。
二、建立数据库
在这一节我们来为本文的例子建立一个数据库。按着我们上面所说的,将使用HSQLDB数据库,第一步是下载HSQLDB JDBC驱动,本文使用的是1.8.0版本,将其解压后的jar文件复制到TestWEB-INFlib中。
然后,我们需要建立一个test数据库,并向数据库中加入一些模拟数据。因此,我们在WEB-INF中建立一个db目录,并在这个目录中放两个文件。第一个文件叫Test.properties,它的内容如下:
#HSQL Database Engine
#Fri Apr 20 18:52:47 CEST 2007
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=false
hsqldb.cache_size_scale=10
readonly=false
hsqldb.nio_data_file=true
hsqldb.cache_scale=14
version=1.8.0
hsqldb.default_table_type=memory
hsqldb.cache_file_scale=1
sql.compare_in_locale=false
hsqldb.log_size=200
modified=no
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.7.1
hsqldb.compatible_version=1.8.0
CREATESCHEMAPUBLICAUTHORIZATION DBA CREATE MEMORY TABLE TTST_ITEM(ITE_CODE CHAR(32) NOTNULLPRIMARYKEY,ITE_NAME VARCHAR(100) NOTNULL,ITE_DESCRIPTION VARCHAR(300)) CREATEUSER SA PASSWORD "" GRANT DBA TO SA SET WRITE_DELAY 60SETSCHEMAPUBLICINSERTINTO TTST_ITEM VALUES('06e8da2682ce842b01a47de7823ec779','Parents','Links for parents') INSERTINTO TTST_ITEM VALUES('1ab94df54312961a015749157fe05097','Web related','Item description') INSERTINTO TTST_ITEM VALUES('1acc5e9d4312961a0157491547be91fa','Source control','That must be about source') INSERTINTO TTST_ITEM VALUES('1ad80b204312961a015749159fe5205a','JBuilder Plugins','Plugin? What's that')
在使用时应注意,HSQLDB驱动只有在发布时还使用完全路径,我们将使用WebLEAF中的AutoConfigurer Servlet来自动配置路径。为了达到这个目的,我们在classes中建立一个webapp.properties文件,这个文件只有简单的一行,内容如下:
三、使用Groovy实现商业逻辑
现在我们已经建立了数据,下面我们开始实现商业逻辑。在上面已经提到过,Java 6直接在JVM层直接支持脚本语言,我们可以使用Java 6支持的Mozilla's Rhino JavaScript脚本引擎,这是一个默认的脚本引擎。WebLEAF可以利用这个特性允许我们使用任何支持者脚本语言来实现商业逻辑。由于Groovy引擎并不直接支持Java 6,因此,为了使用Java 6的脚本功能,我们必须使用java.net工程,这个工程是一个支持不同语言的脚本引擎实现。
查看评论 回复