本系列的2、3部分对参考文档第3章的配置基础、环境和日志配置部分进行了快速扫描,在这一篇中,让我们完成第3章的剩余部分。
GORM无疑是Grails中的亮点,在第3章中关于它的配置选项有2个:
1. grails.gorm.failOnError,save过程的验证失败将抛出异常。以下是它的配置方法:
- 应用于所有Domain Class:grails.gorm.failOnError=true
- 应用于指定Domain Class:grails.gorm.failOnError = [包名1, 包名2]
2. grails.gorm.autoFlush,如果为true,在save、merge和delete时就会对session进行flush。
GORM虽然不错,但要是不配置数据源的话,那也是空有一身好武艺。Grails应用中的数据源配置是发生在DataSource.groovy中的,好在Grails缺省已经做了大部分的工作,因此大多数时候我们需要改动的也就是:驱动名、数据库URL、用户名、密码等。参考文档中列出了配置常用的参数,在此就不一一列出,只单独提一下logSql。这个参数是你在调试最有可能用到的,它的作用是打印Hibernate产生的SQL。
有时候,你可能想把数据源配置成JNDI,对此Grails也可以很容易的与之配合,配置很简单,在数据源中直接引用JNDI名即可:
dataSource { jndiName = "java:comp/env/myDataSource" }
对于数据库模式的创建选项,dbCreate,使用缺省的配置可以满足大多数情况。但如果你有遗留数据库时需小心。此外,Grails目前不支持Rails风格的数据迁移,但已有两个插件支持类似的功能:
build,构建系统的依赖 compile,编译期所需依赖 runtime,运行期所需依赖 test,测试期所需依赖 provided,部署期(非War部署期)所需依赖
方式1,范围 "group:name:version"。如:runtime 'com.mysql:mysql-connector-java:5.1.5' 方式2,范围 group:"...", name:"…",version:"…"。如runtime group:'com.mysql', name:'mysql-connector-java', version:'5.1.5'
runtime 'com.mysql:mysql-connector-java:5.1.5', 'net.sf.ehcache:ehcache:1.6.1' runtime( [group:'com.mysql', name:'mysql-connector-java', version:'5.1.5'], [group:'net.sf.ehcache', name:'ehcache', version:'1.6.1'] )Maven,mavenCentral() SpringSource,ebr() 某个Maven库:mavenRepo "url" 自定义:resolver new URLResolver(...)
repositories { grailsPlugins() grailsHome() // uncomment the below to enable remote dependency resolution // from public Maven repositories //mavenLocal() //mavenCentral() //mavenRepo "http://snapshots.repository.codehaus.org" //mavenRepo "http://repository.codehaus.org" //mavenRepo "http://download.java.net/maven/2/" //mavenRepo "http://repository.jboss.com/maven2/" }
credentials { realm = ".." host = "localhost" username = "myuser" password = "mypass" }
grails.project.ivy.authentication={ credentials{ ... } }网络管理员 还可以利用本地的文件系统作为依赖库:flatDir name:'myRepo', dirs:'path'。
inherits("global") { excludes "oscache", "ehcache" }产生整体报告:grails dependency-report 产生阶段相关的报告:grails dependency-report 阶段名,如grails dependency-report runtime。
compile( 'org.hibernate:hibernate-core:3.3.1.GA') { exported = false }
plugin("hibernate") { compile( 'org.hibernate:hibernate-core:3.3.1.GA') { excludes 'ehcache', 'xml-apis', 'commons-logging' } compile 'org.hibernate:hibernate-annotations:3.4.0.GA', 'org.hibernate:hibernate-commons-annotations:3.3.0.ga' runtime 'javassist:javassist:3.4.GA' }
转载于:https://blog.51cto.com/bcptdtptp/303250