Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,从而为大家带来一套能实现超高生产力的一站式框架。
Grails命令
首先看一个例子,用命令创建项目:
grails create-app helloworld
cd helloworld
grails
//按Tab键可寻求帮助
run-app //运行程序,在浏览器http://localhost:8080打开
create-controller hello //创建一个Controller
启动时端口参数修改:grails -Dserver.port=8090 run-app
测试应用:grails test-app
部署应用:grails war
部署dev环境(默认部署的是production环境):grails dev war
部署应用时设置JVM参数:-server -Xmx768M -XX:MaxPermSize=256m
具体的命令可参考:Command Line
Grails目录结构
Grails遵循COC(Convention over Configuration,约定由于配置)原则。
├─gradle
│ └─wrapper
├─grails-app //Grails程序的核心目录
│ ├─assets //静态资源
│ │ ├─images
│ │ │ └─skin
│ │ ├─javascripts
│ │ └─stylesheets
│ ├─conf //配置文件
│ │ └─spring
│ ├─controllers //Web Controller,MVC中的C
│ │ └─helloworld
│ ├─domain //领域对象
│ ├─i18n //国际化
│ ├─init //初始化代码
│ │ └─helloworld
│ ├─services //Service层
│ ├─taglib //自定义标签库
│ ├─utils //工具库
│ └─views //视图,MVC中的V
│ └─layouts
└─src
├─integration-test //集成测试代码
│ └─groovy
├─main //扩展的代码
│ ├─groovy
│ └─webapp
└─test //单元测试
└─groovy
配置文件
默认配置
构建配置文件:build.gradle
运行时系统配置文件:grails-app/conf/application.yml
日志配置文件:grails-app/conf/logback.groovy
groovy获得配置文件的属性值:
//在Controller中
def recipient = grailsApplication.config.getProperty('foo.bar.hello')
//在Service中
GrailsApplication grailsApplication //全局变量
def recipient = grailsApplication.config.getProperty('foo.bar.hello')
//用Spring PropertySource 的方法
@Value('${foo.bar.hello}')
String recipient
多数据源配置,配置名字不同的数据源。domain中可以在static mapping = { datasources(['lookup', 'DEFAULT']) }
代码块中引用数据源。
自定义配置
继承GrailsAutoConfiguration。
class Application extends GrailsAutoConfiguration {
/**
* 自动扫面,获得所有包的名称
* @return
*/
@Override
Collection<String> packageNames() {
super.packageNames() + ['my.additional.package']
}
/**
* 注册Bean
* @return
*/
@Bean
MyType myBean() {
return new MyType()
}
/**
* 在GrailsApplication的生命周期GrailsApplicationLifeCycle中执行
* doWithSpring, doWithApplicationContext等
* @return
*/
@Override
Closure doWithSpring() {
{->
mySpringBean(MyType)
}
}
}
插件
创建插件
//此命令在含有plugin或者grails项目的目录底下执行不成功,必须在没有它们的目录下执行
grails create-plugin [PLUGIN NAME]
grails create-plugin [PLUGIN NAME] --profile=plugin
在src/main/groovy目录底下,你将发现一个以GrailsPlugin结尾的类。在此类中,你可以为插件添加title、author、description等信息。
安装本地插件
运行grails install
,grails会列出本地Maven缓存中已有的插件。选择一个安装。
创建Groovy脚本: create-script [NAME]
。Grails会在src/main/scripts底下创建一个脚本文件。
创建命令:grails create-command [Command Name]。Grails会在grails-app目录下创建一个commands文件夹,该文件夹下会有一个以命令名命名的文件夹,会有一个以Command结尾的Groovy类。
参考文档: