Grails是一个“约定优于配置”的框架
1、Domain类的约定
(1)所有的domain类都放在grails-app/domain这个文件夹下。
(2)doamin类所有字段默认都被持久化,不论字段访问范围(如public,private等)。类名将为表名,类中的字段名对应表中的字段名.
2、Controller类的约定
(1)Controller类都放在grails-app/controllers这个文件夹下,Controller类的命名都是以Controller结尾。
(2)如果一个controller中的action的名称,与其使用的GSP页面的名称相同,并且GSP页面放在相应的文件夹中,这时,你可以不用设置action对应的GSP。如果两者的命名不相同,则在action中需要设置对应的GSP,例如:
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond CampaignOrder.list(params), model: [campaignOrderInstanceCount: CampaignOrder.count()]
}
(3)
Controller中所有的
public
方法,都可以被web请求访问
(4)在一个空的Controller中加入static scffold = true
或者static scaffold = <领域类的类名>
,运行时将会动态生成相应的controller脚手架和GSP页面。
3、Service的约定
(1)所有的Service类都放在grails-app/services这个文件夹下,Service类的命名都以Service结尾。
(2)所有的service类的方法都是默认加事务的。
(3)所有的service类都会注册为spring的一个bean,并且都是singleton(单例模式)
(4)service加入属性static scope = 'session'
service可以改变使用的范围
4、URL的约定
(1)所有的URL规则约定配置在conf/UrlMappings.groovy中