- 浏览: 173443 次
- 性别:
- 来自: 郴州
文章分类
最新评论
-
craengjava:
很好的,如果可以,希望分享一下详细过程,谢谢
grails and tinymce -
Iwishyou:
汗 这错别字多的...终于面试了下载抵制
Grails中文文档beta发布 -
lauphai:
什么时候有中文文档呀
grails1.2中文文档即将发布 -
Javabengou:
现在从办公室调到建行新开的营业厅所以比较忙没时间做,如果谁想接 ...
grails1.2中文文档即将发布 -
by5739:
现在出了吗?
grails1.2中文文档即将发布
首先,Grails是一个信奉“规约重于配置”的框架,这一点是来自现在流行的Rails.使用Grails的默认设置进行开发,你不需要任何的配置。Grilas装备有一个内置的容器和一个HSQLDB物理内存数据库。
不过有时,你也需要在实际的项目中使用相应的数据库,下面介绍Grails的一些配置(很简单的,这里我用自己的一些项目来说明):
对于普通的配置 Grails 提供了一个路径为 grails-app/conf/Config.groovy的配置文件。
注意看Config.groovy
// locations to search for config files that get merged into the main config // config files can either be Java properties files or ConfigSlurper scripts // grails.config.locations = [ "classpath:${appName}-config.properties", // "classpath:${appName}-config.groovy", // "file:${userHome}/.grails/${appName}-config.properties", // "file:${userHome}/.grails/${appName}-config.groovy"] // if(System.properties["${appName}.config.location"]) { // grails.config.locations << "file:" + System.properties["${appName}.config.location"] // } grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format grails.mime.types = [ html: ['text/html','application/xhtml+xml'], xml: ['text/xml', 'application/xml'], text: 'text-plain', js: 'text/javascript', rss: 'application/rss+xml', atom: 'application/atom+xml', css: 'text/css', csv: 'text/csv', all: '*/*', json: ['application/json','text/json'], form: 'application/x-www-form-urlencoded', multipartForm: 'multipart/form-data' ] // The default codec used to encode data with ${} grails.views.default.codec="none" // none, html, base64 // enabled native2ascii conversion of i18n properties files grails.enable.native2ascii = true // log4j configuration log4j { appender.stdout = "org.apache.log4j.ConsoleAppender" appender.'stdout.layout'="org.apache.log4j.PatternLayout" appender.'stdout.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.errors = "org.apache.log4j.FileAppender" appender.'errors.layout'="org.apache.log4j.PatternLayout" appender.'errors.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.'errors.File'="stacktrace.log" rootLogger="error,stdout" logger { grails="error" StackTrace="error,errors" org { codehaus.groovy.grails.web.servlet="error" // controllers codehaus.groovy.grails.web.pages="error" // GSP codehaus.groovy.grails.web.sitemesh="error" // layouts codehaus.groovy.grails."web.mapping.filter"="error" // URL mapping codehaus.groovy.grails."web.mapping"="error" // URL mapping codehaus.groovy.grails.commons="info" // core / classloading codehaus.groovy.grails.plugins="error" // plugins codehaus.groovy.grails.orm.hibernate="error" // hibernate integration springframework="off" hibernate="off" } } additivity.StackTrace=false } // WAR dependency config grails.war.dependencies = [ "ant.jar", "ant-launcher.jar", "hibernate3.jar", "jdbc2_0-stdext.jar", "jta.jar", "groovy-all-*.jar", "springmodules-sandbox.jar", "standard-${servletVersion}.jar", "jstl-${servletVersion}.jar", "antlr-*.jar", "cglib-*.jar", "dom4j-*.jar", "ehcache-*.jar", "junit-*.jar", "commons-logging-*.jar", "sitemesh-*.jar", "spring-*.jar", "log4j-*.jar", "ognl-*.jar", "hsqldb-*.jar", "commons-lang-*.jar", "commons-collections-*.jar", "commons-beanutils-*.jar", "commons-pool-*.jar", "commons-dbcp-*.jar", "commons-cli-*.jar", "commons-validator-*.jar", "commons-fileupload-*.jar", "commons-io-*.jar", "commons-io-*.jar", "*oro-*.jar", "jaxen-*.jar", "xercesImpl.jar", "xstream-1.2.1.jar", "xpp3_min-1.1.3.4.O.jar" ] grails.war.java5.dependencies = [ "hibernate-annotations.jar", "ejb3-persistence.jar", ]
上面是源代码.它使用了Groovy's ConfigSlurper,类似于Java的属性文件,只不过他是使用纯粹的Groovy文件,你可以重复使用变量和正确的Java类型。
你可以在这里添加你自己的配置, for example:
foo.bar.hello = "world"稍后你可以在你的应用项目中访问这些设置。在大多数情况下你可以通过 GrailsApplication (在controllers and tag中的可用变量)对象来访问:
assert "world" == grailsApplication.config.foo.bar.hello
Grails也提供下面这些配置选项:
- grails.enable.native2ascii - 设置为false 你将不要求 native2ascii 转换Grails i18n 属性文件。
grails.enable.native2ascii = true
默认为true. - grails.views.default.codec - 设置GSP的默认编码方式 - 可以为这些中的其中一个( 'none', 'html', 'base64' (default:
'none')). 为了 减少XSS攻击的风险, 设置为 'html'.
grails.views.default.codec="none"
默认为none。
Grails 使用普通的配置机制去配置潜在的 Log4j log system。配置logging你必须修改 Config.groovy文件 ,位于 grails-app/conf 路径下,它允许你指定单独的logging配置(如:development, test, production environments.)。Grails 执行 Config.groovy 文件 并在web-app/WEB-INF/classes目录下产生适当的 log4j.properties 文件 。
log4j { appender.stdout = "org.apache.log4j.ConsoleAppender" appender.'stdout.layout'="org.apache.log4j.PatternLayout" appender.'stdout.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.errors = "org.apache.log4j.FileAppender" appender.'errors.layout'="org.apache.log4j.PatternLayout" appender.'errors.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.'errors.File'="stacktrace.log" rootLogger="error,stdout" logger { grails="error" StackTrace="error,errors" org { codehaus.groovy.grails.web.servlet="error" // controllers codehaus.groovy.grails.web.pages="error" // GSP codehaus.groovy.grails.web.sitemesh="error" // layouts codehaus.groovy.grails."web.mapping.filter"="error" // URL mapping codehaus.groovy.grails."web.mapping"="error" // URL mapping codehaus.groovy.grails.commons="info" // core / classloading codehaus.groovy.grails.plugins="error" // plugins codehaus.groovy.grails.orm.hibernate="error" // hibernate integration springframework="off" hibernate="off" } }如果你更喜欢标准的 Log4j 属性文件样式配置 你可以使用Groovy的多行String替代:
log4j = ''' log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # ...remaining configuration '''
注意:Groovy的多行String是
''' '''
的形式。
一些有用的 loggers:
- org.codehaus.groovy.grails.commons - 核心工件( artefact)信息 比如 class loading 等等.
- org.codehaus.groovy.grails.web - Grails web 请求处理
- org.codehaus.groovy.grails.web.mapping - URL mapping调试
- org.codehaus.groovy.grails.plugins - 记录插件行为
- org.springframework - 观察spring正在干什么。
- org.hibernate -观察Hibernate正在干什么。
当有异常抛出,full trace 总是会写入 StackTrace logger,文件名叫做 stacktrace.log--当然你可以做任何你喜欢的改变通过grails-app/conf/Config.groovy文件,例如:
StackTrace="error,errors"
你可以改变成:
StackTrace="error,stdout"
可以完全废除stacktrace filtering 通过设置 grails.full.stacktrace VM 属性为 true:
grails -Dgrails.full.stacktrace=true run-app
Logging通过规约:
所用的应用程序工件( artefacts)可以动态的添加 log 属性. 包括 domain classes, controllers, tag libraries 等等. 例如:
def foo = "bar" log.debug "The value of foo is $foo"
Logs命名 使用 规约 grails.app.<artefactType>.ClassName,例如:
# Set level for all application artefacts log4j.logger.grails.app="info, stdout" # Set for a specific controller log4j.logger.grails.app.controller.YourController="debug, stdout" # Set for a specific domain class log4j.logger.grails.app.domain.Book="debug, stdout" # Set for a specific taglib log4j.logger.grails.app.tagLib.FancyAjax="debug, stdout" # Set for all taglibs log4j.logger.grails.app.tagLib="info, stdout"
工件(artefacts) 名字通过规约来规定:
- bootstrap - For bootstrap classes
- dataSource - For data sources
- tagLib - For tag libraries
- service - For service classes
- controller - For controllers
- domain - For domain entities
因为Grails 是构建在Java 技术 之上,配置data source 要求一些JDBC知识(并不是替代 Java Database Connectivity).
本质上, 如果你使用除HSQLDB以外的database , 你需要其对应的JDBC driver 。这里我们使用MySql。
首先你的下载JDBC driver,并把他放在项目中的lib目录下。
其次你得修改位于项目中的grails-app/conf/DataSource.groovy文件。
主要包括一下设置:
- driverClassName - JDBC driver的class name.
- username - username 为你的数据库用户名
- password - password 为你的数据库密码
- url - 数据库的JDBC URL
- dbCreate - 是否从domain model 自动生成数据库。
- pooling - 是否使用连接池 (默认为true)
- logSql - SQL logging
附上源代码:
dataSource { pooled = false driverClassName = "org.hsqldb.jdbcDriver" username = "sa" password = "" } hibernate { cache.use_second_level_cache=true cache.use_query_cache=true cache.provider_class='org.hibernate.cache.EhCacheProvider' } // environment specific settings environments { development { dataSource { dbCreate = "create-drop" // one of 'create', 'create-drop','update' url = "jdbc:hsqldb:mem:devDB" } } test { dataSource { dbCreate = "update" url = "jdbc:hsqldb:mem:testDb" } } production { dataSource { dbCreate = "update" url = "jdbc:hsqldb:file:prodDb;shutdown=true" } } }
典型的MySQ配置:
dataSource { pooling = true dbCreate = "update" url = "jdbc:mysql://localhost/yourDB" driverClassName = "com.mysql.jdbc.Driver" username = "yourUser" password = "yourPassword" }
JNDI DataSources
有时你需要使用JNDI,Grails支持JNDI:
dataSource { jndiName = "java:comp/env/myDataSource" }
DataSource 的dbCreate 属性定义是非常重要的 ,因为他规定了Grails 在运行时怎样尝试数据库表格 ,可选的操作:
- create-drop - 当Grails运行时自动销毁和产生数据库表格。
- create - 假如不存在就创建它,但不是修改它。
- update -假如不存在就创建它, 假如存在就修改它。
dataSource { dbCreate = "create-drop" // one of 'create', 'create-drop','update' }
当然,假如你不想使用上面所说的配置,你可以删除
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
}
就可以了。
评论
满江红的翻译没有留意
我有满江红的ID
不过最近没看这个翻译项目
么?可以查看一下http://wiki.redsaga.com/confluence/pages/viewpage.action?pageId=2531,可否有重复
发表评论
-
grails1.2中文文档即将发布
2009-11-10 11:25 2012grails1.2中文文档即将发布 发布日期可能与官方同步, ... -
我的桌面很酷吧
2009-03-31 17:19 1802我的桌面很酷吧 哈哈!!! 晒晒我的系统 -
Grails1.1中文文档——2009.3.25版本发布
2009-03-25 19:50 1532Grails1.1中文文档——2009.3.25版本修正了网友 ... -
对于Groovy&&Grails的问题大家可以在此提问
2009-03-23 12:06 1138如果大家碰到什么关于Groovy&&Grail ... -
Grails1.1中文文档正式发布
2009-03-19 22:58 1488经过大家的努力 Grails1.1中文文档正式发布 ... -
Grails 1.1中文文档即将发布
2009-03-11 16:50 1724Grails 1.1中文文档即将发布 SVN:http:/ ... -
现在支持对Groovy的代码高亮(有需要的可以找我)
2009-03-05 11:59 1411有需要的可以找我 -
groovy闭包 (PK) Java IOC
2008-10-17 15:03 2412N久没写东西,今天突发想法,写下来,废话少说,干活,先看几段代 ... -
grails and tinymce
2008-05-30 16:44 2269最近弄了个grails tinymce下的代码高亮插件: 界面 ... -
Grails中文文档beta发布
2008-05-08 21:32 2289经过我们大家的努力Grails中文文档终于面试了 下载抵制 b ... -
关于使用IDEA开发Grails项目乱码的问题
2008-04-10 02:40 3829关于Grails乱码的问题 个人测试了以后 还是属于编辑器的问 ... -
6.1.3 Models and Views
2008-03-19 00:02 1699h4. Returning the Modelh4. 返回模型 ... -
6.1.2 Controllers and Scopes
2008-03-18 23:39 1567h4. Available Scopesh4.可用范围(Sco ... -
6.1.1 Understanding Controllers and Actions
2008-03-18 23:16 1314h4. Creating a controllerh4. 创建 ... -
6.1 Controllers
2008-03-18 22:52 1268A controller handles requests a ... -
Groovy(Java笨狗)系列-Working with closures(1)
2008-03-17 22:28 1974翻译自《Groovy in action》 ... -
6.1.7 XML and JSON Responses
2008-03-09 15:19 3626h4. Using the render method to ... -
Grails(Java笨狗)系列-更好的理解闭包(closure)
2008-01-20 15:39 1915用现实生活中的示例来说明闭包 现在,让我们来考虑放在信封里的信 ... -
可能Grails的翻译不会在发布到BLOG中来了
2008-01-18 17:03 3262很荣幸能参加满江红的Grails的翻译 所以 Grails的翻 ... -
Groovy(Java笨狗)系列--fields and local variables
2008-01-14 16:28 4862使用最简单的术语,a variable(变量): 变量名引用的 ...
相关推荐
3. Convention over Configuration(CoC):Grails的核心理念之一就是“约定优于配置”,这意味着开发者在很多情况下不需要写大量的配置文件,框架会自动根据约定进行工作。 二、Grails中文文档的价值 1. 学习入口...
Grails 的设计理念是"Convention over Configuration"(约定优于配置),这意味着它具有高度的可配置性和自动化特性,减少了开发者在项目初始化阶段的配置工作量。 1. **框架结构:** Grails 包含了模型(Model)、...
1. **动态类型语言Groovy**:Grails使用Groovy作为主要编程语言,这是一种运行在Java平台上的动态语言,具有简洁、易读的语法,支持面向对象编程和函数式编程风格。 2. **Spring框架集成**:Grails内置了Spring框架...
1. **Grails框架**:Grails是一个基于Groovy语言的全栈式Web应用框架,它吸收了Ruby on Rails的许多设计理念,如Convention over Configuration(约定优于配置)和DRY(Don't Repeat Yourself)原则,旨在提高开发...
- **背景**: Grails是一个基于Groovy语言的开源Web应用框架,适用于Java平台。它旨在简化开发过程,提高开发效率,尤其受到那些希望保留Java环境同时寻求更高效开发方式的开发者的欢迎。 - **特点**: - **规约重于...
Grails是一个基于Java平台的开源Web应用框架,它集成了Groovy语言的强大功能与Spring框架的成熟特性,为开发者提供了高效且灵活的开发方式。根据给定文件的描述,Grails正处于起步阶段,但在开发效率上已展现出显著...
Grails 是一个基于Groovy语言的开源Web应用框架,它构建于Java平台之上,旨在简化开发过程并提高生产力。在Grails 3.0.5版本中,引入了许多改进和新特性,使得这个版本成为一个重要的里程碑。以下是关于"grails-...
5. **自动化配置**: Grails采用“Convention over Configuration”原则,意味着它会根据约定自动进行配置,减少开发者手动设置的繁琐工作。例如,控制器默认与视图同名,且位于特定目录下。 6. **Grails插件系统**:...
Grails 的设计目标是简化开发,通过元编程和约定优于配置(Convention over Configuration)的理念,让开发者能够快速地构建高质量的Web应用。 1. **Groovy 语言基础** - Groovy 是一种动态类型的JVM语言,语法...
Grails结合了Java的稳定性和动态语言的便捷性,它倡导"Convention Over Configuration"(约定优于配置)的理念,大大减少了开发者对框架配置的工作量。Groovy,作为Grails的基础语言,是一种完全面向对象的脚本语言...
Java web development is notoriously tedious, but help is on the way: Grails. Using the principle of convention-over-configuration and the dynamic Groovy programming language, Grails takes the pain out...
- **简洁性**:Grails通过约定优于配置(Convention Over Configuration)的原则,减少了配置工作量,使得开发者能够专注于业务逻辑而非框架配置。 - **插件系统**:Grails拥有丰富的插件生态系统,可以通过简单的...
### Java程序员使用Grails的十大优势 #### 1. 易于学习 Grails框架以其易学性著称,尤其对于已经熟悉Java的开发者来说,它提供了一个无缝过渡的平台。由于Grails基于Groovy语言,该语言的设计理念是与Java高度兼容...
- **Convention over Configuration**(约定优于配置):Grails通过默认设置来减少大量的配置工作,使得开发者可以更快地专注于业务逻辑。 - **Groovy语言**:Grails的语法基于Groovy,这是一种动态类型的JVM语言,...
Grails 的核心理念是“代码少、功能多”,它通过元编程和约定优于配置(Conventions over Configuration)的理念,降低了开发复杂度,提高了开发效率。 标题 "grails-1.3.7" 指的是 Grails 框架的 1.3.7 版本。这个...
Grails 3.3 是 Grails 3.x 系列中的一个版本,相比之前的版本,在性能优化、安全性增强以及新特性的支持方面都有所提升。 #### 二、Grails 3.3 的主要特性 1. **Groovy 2.4 支持**:Grails 3.3 内置了对 Groovy ...