分类: Java
2009-12-21 14:12:57
环境:
在Grails中通过grails-app/conf
目录下的Config.groovy和DataSource.groovy文件来支持环境的配置。
在Grails中可以通过命令行的内置的能力来指定在何种环境下运行命令,格式是:
grails [environment] [command name]。
Grails中有三个预定义的环境是:dev
,prod
, andtest
。如果是自定义的环境,需要使用以下的方式进行调用:
grails -Dgrails.env=UAT run-app。
在Gant脚本和Bootstrap类中,可以通过Enviroment类来进行与环境相关的交互。
Datasource:
包含驱动的jar文件应放在项目的lib目录中。然后使用位置在grails-app/config目录下的数据源描述文件DataSource.groovy来进行数据源的配置。
数据源的定义中包含以下的设置:
· driverClassName – JDBC驱动的类名。
· username – 链接数据库的用户名。
· password – 连接数据库的密码。
· url – 数据库的地址。
· dbCreate – 是否自动基于domain model创建数据库。
· pooled – 是否使用数据库连接池 (缺省true)
· logSql – 是否记录sql语句。
· dialect – 与数据库进行交互的方言。
· properties – 对数据源进行设置的额外的属性。
当设置数据源的属性时,不能使用类型定义或def关键字。
数据源设置的例子:
dataSource {
pooled = true
dbCreate = "update"
url = "jdbc:mysql://localhost/yourDB"
driverClassName = "com.mysql.jdbc.Driver"
username = "yourUser"
password = "yourPassword"
properties {
maxActive = 50
maxIdle = 25
minIdle = 5
initialSize = 5
minEvictableIdleTimeMillis = 60000
timeBetweenEvictionRunsMillis = 60000
maxWait = 10000
}
}
当需要使用JNDI查找数据源时,可以使用以下的数据源声明格式:
dataSource {
jndiName = "java:comp/env/myDataSource"
}
dbCreate属性的值:
create-drop和create都会删除现有的数据。
外部配置文件的指定:
当需要使用外部配置文件时,可以通过Config.groovy中的grails.config.locations属性,以以下的方式指定外部配置文件的位置:
grails.config.locations = [ "classpath:${appName}-config.properties",
"classpath:${appName}-config.groovy",
"file:${userHome}/.grails/${appName}-config.properties",
"file:${userHome}/.grails/${appName}-config.groovy"]
版本:
当使用create-app,成功创建应用程序时,版本是0.1 。版本信息存放在application.properties文件中。
可以通过命令set-version,以以下的格式来进行版本的变更。
grails set-version 0.2
可以使用GrailsApplication来查询版本:
def version = grailsApplication.metadata['app.version']
查询grails的版本:
def grailsVersion = grailsApplication.metadata['app.grails.version']
或
import grails.util.*
def grailsVersion = GrailsUtil.grailsVersion
修改程序运行的端口
修改程序运行的端口可以使用以下的两种方式:
临时指定:grails -Dserver.port=9090 run-app
永久指定:
在文件
$GRAILS_HOME/scripts/Init.groovy中修改下载的内容:
serverPort = System.getProperty('server.port') ?
System.getProperty('server.port').toInteger() : 9090
在grails中,可以使用以下的命令来修改使用的servlet的版本:
grails -Dservlet.version=2.5 run-app。