本系列的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风格的数据迁移,但已有两个插件支持类似的功能:

针对开发各阶段,存在5个依赖范围:

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'])
依赖库定义了依赖存放的位置,在repositories中定义。缺省为grailsHome(),来自Grails的安装所带jar。如果依赖库在远程,那么:

Maven,mavenCentral() SpringSource,ebr() 某个Maven库:mavenRepo "url" 自定义:resolver new URLResolver(...)

依赖库的定义示例(摘自BuildConfig.groovy):
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中:
credentials {realm = ".."host = "localhost"username = "myuser"password = "mypass"}
以上内容也可以被包含在USER_HOME/.grails/settings.groovy中的grails.project.ivy.authentication设置中,设置示例:
grails.project.ivy.authentication={ credentials{...} }
依赖解析块内的log提供了日志功能,使用方式同前。请参见

网络管理员还可以利用本地的文件系统作为依赖库:flatDir name:'myRepo', dirs:'path'。

inherits("global") {excludes "oscache", "ehcache"}
针对依赖,Grails还新添了dependency-report命令来产生依赖报告。使用:

产生整体报告:grails dependency-report 产生阶段相关的报告:grails dependency-report 阶段名,如grails dependency-report runtime。

除了应用,你同样可以给插件指定依赖关系,方法同前。对于安装插件的应用将自动继承插件的依赖,除非插件在自己的依赖解析定义中使用了exported=false:
compile( 'org.hibernate:hibernate-core:3.3.1.GA') {exported = false
}
如果插件的依赖与应用相冲突,应用可以同plugin()来控制插件如何解析依赖。示例:
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'
}
参考文档中还说明了Grails工程如何跟Maven集成的方法,考虑到Maven使用相对复杂,且对于单个工程的意义不大,这里就不重点阐述了。

转载于:https://blog.51cto.com/bcptdtptp/303250

Grails 1.2参考文档速读(4):第3章剩余内容相关推荐

  1. Grails 1.2参考文档速读(19):插件

    Grails是一个插件架构,这一点我们已经在前面体会到了,最典型的就是GORM一节中,我们明明没有定义crud操作,但在运行时却可以使用它,造成这一结果的"元凶"就是我们预先安装的 ...

  2. Grails 1.2参考文档速读(15):验证

    在前面的几篇中,我们已经看到了Grails的验证框架带来的便利,现在让我们深入对其进行了解. 和Grails的大多数特性一样,Grails的验证框架同样也是建立在Spring之上的,不同的是它是以Sp ...

  3. Spring Data JPA - 参考文档-3

    参考文档 4. JPA存储库 本章将指出JPA对知识库的支持.这建立在使用Spring Data Repositories中解释的核心存储库支持上.所以要确保你对这里解释的基本概念有一个很好的理解. ...

  4. Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档) 9-16

    9. 数据 Spring Boot与多个数据技术集成,包括SQL和NoSQL. 9.1. SQL数据库 Spring Framework提供扩展支持用于与SQL数据工作,从使用JdbcTemplate ...

  5. openEuler 文档捉虫 2.0 上线啦,一键式提交 PR,成为开源贡献者,你也可以参与,文档伴读方案正式开源!

    hi~ 各位小伙伴 openEuler 文档捉虫 1.0 活动自 4 月开展以来,将 openEuler 官网和 Gitee 平台连结,自动创建 issue,解决了之前需要在两个平台之间来回跳转,提交 ...

  6. Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档)-附录A-C

    附录 附录A:常用的应用程序属性 多种属性可以指定到application.properties文件,application.yml文件内,或者作为命令行开关.这个附录提供常用的Spring Boot ...

  7. 最近看了很多druid的配置,发现有些云里雾里,自己参考文档写了一份配置,需要的同学自己改吧改吧,有理解错误的地方希望大家指出来

    最近看了很多druid的配置,发现有些云里雾里,自己参考文档写了一份配置,需要的同学自己改吧改吧 spring:#数据库配置datasource:#这里使用的是德鲁伊数据库连接池druid:db-ty ...

  8. Hibernate中文参考文档(JFIS)

    HIBERNATE - 符合Java习惯的关系数据库持久化      下一页 HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.0.4 目录 前言 1. 翻译 ...

  9. Node.js API参考文档(目录)

    Node.js v11.5.0 API参考文档 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 关于文档 用法和示例 断言测试 稳定性:2 - 稳 ...

最新文章

  1. python【蓝桥杯vip练习题库】BASIC-17矩阵乘法(枚举)
  2. anaconda tensorflow 2.3_安装anaconda amp;源码安装lightgbm,xgboost
  3. 取出被正则表达式匹配的值
  4. 《Master Bitcoin》学习笔记02——比特币的交易模型
  5. 生物信息学资料1,常用软件,酶切位点分析
  6. oracle instant client 配置,oracle instantclient配置
  7. 2022小米红米手机最新最全MIUI刷机教程内测版到稳定版 不清除数据(线刷、卡刷)
  8. 世界淡水资源占水资源的多少_全球的淡水资源占水资源比例为多少
  9. Mac 输入法原文件的安装位置
  10. 目标跟踪质心跟踪算法
  11. 个人计算机硬件配置清单,个人台式电脑配置清单
  12. 被“中年危机”榨干的年轻人:如何尽早实现财务自由?
  13. jdk,jre,ide概念辨析
  14. [附源码]SSM计算机毕业设计西柚网购物系统JAVA
  15. rust申请解封_希望rust真的解封
  16. 如何使用RUN as命令安装软件
  17. 全国计算机等级考试新版上机题库 二级C语言程序设计pdf
  18. IT名企实习资本是什么?超级实习生保offer靠谱吗?
  19. 人工智能又一应用场景:马云“动动嘴”买票乘地铁
  20. 如何用手机调整PDF文件?几个步骤学习一下

热门文章

  1. 国科微电子:芯片将是国内企业下一个发力点
  2. BZOJ2934 : [Poi1999]祭坛问题
  3. 在Windows上编译和调试CoreCLR
  4. Atitit. 真正的全中国文字attilax易语言的特点以及范例
  5. AS3 XML全部用法
  6. 802.11无线信道详解
  7. [HAOI2011]problem a
  8. 【原码, 反码, 补码的基础概念和计算方法】
  9. 场景7:带有Linux网桥的提供商网络
  10. 堆栈应用(三):火车车厢重排