Groovy和Grails简介 Groovy简介 Groovy 是一种动态语言,它在 JVM 上运行,并且与 Java 语言无缝集成。 Groovy 可以大大减少 Java 代码的数量。...我们可以看到,grails依赖的Groovy,JVM环境版本。 创建Grails项目 让我们来体验JVM上的Ruby on rails式的命令行自动工程生成的快感吧!...我们可以直接使用下面的命令运行这个工程: $ grails run-app 它会自动下载gradle-3.4.1-bin.zip(通常会很慢): | Resolving Dependencies....里面配置一下server.port (默认8080): server: port: 8008 命令行执行(我们也可以使用grails run-app运行工程,区别是grails会下载外部gradle...螢幕快照 2017-04-15 02.10.49.png 为了演示上的简易性,数据库我们直接用的是H2,在application.yml配置如下: hibernate: cache:
于是有人基于Groovy做了Grails,可以理解为Grails = Rails on Groovy。...虽然我是做Web应用出身的,但当年的我已经“退出江湖”多年,对于很多的新的技术和框架已经脱节,而通过Grails,我可以在不需要懂这些技术和框架的情况下就运用到它们。...复杂逻辑可以在Service层编写(支持Transactional),然后通过注入在Controller上调用。...Domain Object可以随时修改,表结构和脚手架会自动更新,可以边设计边编程边测试,可变性非常高,不需要一开始一次性做对(敏捷); Groovy强大的动态性和闭包,大大加快了编程速度; 框架设计上采用...Grails基于敏捷的思想从技术上实现了快速开发,反过来赋能了敏捷开发。
Groovy 实为一个 Java 强大的扩充,并在开发效率上比 Java 强出几倍。...服务器上应用了!...这将有效地形成一系列的 “TCK” 以确保 Grails 在 1.0 基础上的稳定性,此外,一组大量的 Grails 单元测试为持续整合平台的构建而稳定执行。...而另一方面,Groovy 创造的目的也正是为了在遵循 Java 对象模型和顺从 Java 程序员惯性思维的基础上扩展该语言的能力。 第一章将带你领略 Groovy 的背景并且为你准备一下必要的知识。...请看 Grails 邮件列表统计,这已经突破了先前的记录,在一月达到平均 140 条每日的数量,看来在二月,这个情况也会差不多。
在一个独立的容器中拥有一个预配置环境,这个想法吸引了全球领先的技术公司和数百万用户。然而,上述方法仍然需要用户下载软件、图像,以及管理桌面。我们在Codenvy上更进了一步。...任何语言 好吧,几乎任何可以在Linux上安装和运行的东西,都可以在Codenvy中安装和运行。Docker给了我们这个能力。...#设置env变量并将它们导出到.bashrc ENV GRAILS_HOME /home/user/grails-2.4.4 RUN echo'export GRAILS_HOME = $ GRAILS_HOME...这是构建自定义环境的一种方式——即使用Codenvy基础映像并在其上安装东西。如果你想拥有一个你很熟悉的环境,这个方法就行得通,因为这是你建立的。...在Codenvy中有一个创建项目克隆的机制,我们称之为Factories。你的项目,包括自定义的环境(自定义的Docker文件)和设置将被编码到一个可与其他人共享的URL上。
任何环境,任何语言 好吧,差不多任何可以在Linux上安装和运行的东西都可以在Codenvy中安装和运行。Docker给了我们这个能力。...这里有一个基于预安装JDK7的镜像搭建Grails环境的例子: FROM codenvy/jdk7 #下载Grails发行版,将其解压到/home/user/$GRAILS_HOME RUN wget....bashrc ENV GRAILS_HOME /home/user/grails-2.4.4 RUN echo'export GRAILS_HOME = $ GRAILS_HOME'>> /home/...理想情况下,当你在本地建立一个镜像,把它推送到Docker Hub,再作为一个基本镜像在Codenvy中使用,这样生成的Dockerfile只包含3条指令:FROM,ADD和CMD(实际上,如果需要,你可以在基本镜像中指定...这是构建自定义环境的一种方式 - 使用Codenvy基本映像,在其上安装其他软件。如果你想拥有一个你习惯的环境,那这个方案就非常有用——因为您就是这个环境的构建者。
作为一个Java开发者,Spring框架应该基本上都用过的,由于Spring框架太过于强大,导致我们可能只知道Spring框架,但其实还有很多优秀的框架可以供我们使用,本文将介绍6个和spring框架类似的框架...Grails建立在这些概念之上,大大降低了在Java平台上构建Web应用程序的复杂性。然而,它的不同之处在于,它通过构建已经建立的Java技术(如Spring和Hibernate)来实现。...JSON 的视图技术 Groovy Server Pages 用于在服务器上呈现 HTML 和其他标记的视图技术 Async Framework 异步编程抽象,支持 RxJava、GPars 等 Micronaut...Vert.x Vert.x 是一个由Eclipse基金会管理的工具集,用于在JVM上构建响应式应用程序。它是一个工具集,而不是一个框架,所以它可以组合和嵌入到其他框架。...,在Kubernetes等容器协调平台中提供近乎即时的扩展和高密度的内存利用。 云原生:在 Kubernetes 等环境中采用 12 因素架构。
相同的HTML,当渲染在浏览器上时,就有了两个完全不同的外观。 Java Java——制作网页上的东西。不要将Java与Java混淆。虽然它们有一些语法的相似性,但这是两个完全不同的编程语言。...在我的Spring入门在线教程上,我对主要的Spring框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。 ...Grails Grails是建立在Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。...我喜欢将Grails形容为用Groovy包装过的Spring。关键一点要记住的是,其背后依然是Spring。 Grails现在越来越受到企业的欢迎。...Grails的优势之一就是其出色的社区支持。 SpringRoo SpringRoo是一个纯Java框架,这似乎和Grails的作用相同,不过它没有Groovy。
反过来就不一定了,比如我公司一直使用的Grails,在国内的普及程度就远低于所谓的SSH或SSM。但其学习曲线一点都不高,而且开发效率数倍于前者。...从获得支持的角度来讲,这条原则相当于对于上一条原则的补充说明。 原则5:是否有助于规范开发流程?...普及程度或学习曲线,Grails在国内的知名度远逊于其在国外的知名度要拜国内的培训班所赐。...对于规范开发,Grails同样也不落人后: Grails应用有很明显的规范套路,参见上述原则5的描述。...业务上,开始慢慢稳定,形成了固有的套路和做法,即使有新需求,也并非像以前一样没有参考和不稳定。另一方面,技术上的积淀也越来越多,不论显式地或隐式的,公司已经有了自己的技术路线和规范。
同时runDeck提供了完整的权限管理,开发,运维,测试可以在RunDeck中完成软件交付的整个流程。...这些自动化的过程在工作流程中定义。工作流作用于自动化过程中的各个任务。工作流运行失败或者成功都会发出通知。当错误发生时,你可以选择立即失败,或者触发特定的错误处理程序步骤。...=smtp.sina.com.cn grails.mail.port=25 grails.mail.username=xxx grails.mail.password=xxx RunDeck的使用...创建好后在项目ssh属性password中选中创建好的key (4)新增job,添加查看日志的命令,在ca节点执行 新增一个可执行的job,添加tail -f xxx.log用来查看远程服务器输出的日志信息...,操作如下,注意如下箭头标注,可以指定筛选到的服务器,这里是ca,也可以配置命令执行失败后的处理流程等等。
官方对Groovy的特性总结如下: 是一种敏捷的动态Java虚拟机语言 它建立在Java的基础上,但又有其他强大的特性,这些特性受到Python、Ruby和Smalltalk等语言的启发 为Java开发人员提供了几乎零学习曲线的现代编程特性...在本节中,我们将重点介绍几个最知名和最成功的项目,这些项目以Groovy为核心。 Grails :Grails是一个用于JVM的开源、全栈、web应用程序框架。...利用Groovy编程语言的巨大灵活性,并在经过验证的Java技术基础上构建,我们的目标是使多核硬件的并发编程变得直观、健壮和愉快。...受Grails的启发,Griffon遵循“配置之上的约定”范式,搭配直观的MVC架构和命令行界面。 Geb:Geb是一个功能强大的浏览器功能测试框架,可以让您快速轻松地在Groovy中编写功能测试。...是一种工具,用于在大多数基于Unix的系统上管理多个软件开发工具包的并行版本。它提供了一个方便的命令行界面,用于安装、切换、删除和列出候选项。
除了阿里仓库和martiansoftware,其他的仓库都代理到阿里public上 grails-core,!apache-snapshots,!...一般使用https://mvnrepository.com/,查询缺失的jar,在Note找到对应的仓库就可以了。 ?.../)里找不到,在Cloudera 3rd-P里可以找到。...大体上就是这么个思路。
热加载(热更新):在程序的运行期间,类有了内容上的改变,更新类到运行的项目中。 不释放内存,比如修改类了,原先的类内存不会释放,新的类还会增加内存,同样不重启tomcat。...devtools 其实是当监测到有代码改动后会,自动重启jvm 进行reload ,不是真正意义上的热部署,经常出现当build 完后,发现你在session 中存放的值失效了登陆失败。...网上的一些回答 除了从本地或是网上加载类文件,还可以用类加载器来: 在执行不受信任的代码之前自动验证数字签名 使用用户提供的密码透明的解密代码 根据用户的特定需求创建自定义的动态类 额外拓展Grails.../grails-app/services/**/*Service.groovy" //监控资源的路径 ......grails官网文档 participatingInAutoReloadEvents部分
这个最新版本提供了如下特性:一个新的 showPublications Gradle task,能够列出 Maven 上发布的所有 Group | Artifact | Version(GAV)坐标;当收集元数据时...在这两个版本中,值得关注的缺陷修复包括:改进 JDK 11 和 JDK 17 上的应用部署;Asadmin CLI 工具命令的超时,start/stop/restart-deployment-group...Grails Grails 的 5.3.2 和 5.3.1 版本发布,由于 org.apache.maven:maven-resolver-provider 从 3.8.3 版本升级到 3.9.0 版本的...--no-rebuild 命令行选项;以及 Scala 构建失败,且报告内容为,isBlank 不是 String 类的成员。...|Q资讯 直接到云上做开发?先等等,这个方案还“半生不熟”
在一个 Grails 项目里面,我想写一个过滤不良信息的 Service,而将过滤的规则放置在 xml 文件之中。...sensitive)returnsource returnsource.replaceAll(sensitive,substitution) } } 就这样的代码,结果在 Grails...运行时出现中文问题,并且不止是页面,在 filter 方法里面就已经无法正确显示中文,而 Service 中同样的代码在普通 Groovy 应用程序中就没有中文问题。...仍然无效…… ---- 琢磨了半天,得出解决方案: 譬如打算将整个项目编码统一成 UTF-8 格式的,我使用 Eclipse 开发,我的 Eclipse 默认的的编码是 GBK 的,那么这个可以保持不变,在项目上单击右键
这个限制的好处是清晰:Java 开发人员不必猜想两个对象上的 + 是把它们加在一起还是把一个对象附加到另一个对象上。不好的地方则是丧失了一个有价值的简写形式。...在表 1 中有一个可以重载的算术类操作符 在Spring中的简单使用 1....这允许多个相关配置存储在同一文件中。...转换SQL Result到XML import groovy.sql.Sql import groovy.xml.MarkupBuilder def schema = "PROD" def sql =
我很高兴与microservices一起使用基于Spring和Grails的微服务,使用各自框架的最新版本。可以自由组合所使用的技术栈,这是很令人激动的事。 职责分离 ?...在处理微服务时,体系结构通常非常明显。服务在不同的容器上运行,通常命名得很好。不需要查看文档或阅读大量的源代码。这使架构师和负责此级别设计的人能够清晰地实现他们的愿景。...事实上,系统的每个部分都很小,并且很好地分离,这使得我们甚至可以快速地检查代码并确保没有任何可疑的事情发生。 显式地命名微服务还为开发人员和其他所有人提供了讨论系统不同组件的通用、明确的方式。...更改代码要容易得多 我发现,在一个项目中,实现微服务的代码要比一般的单体要容易得多。服务的重点和简洁是您最大的盟友。...我在这里没有提到的事实是,现代微服务框架(如Spring Boot或Grails)专注于减少不必要的配置和样板代码,而这些常常妨碍理解。
这两天看了一本书《Grails权威指南》,看了这个Java上Rails框架,其中有两条设计理念: 1、make simple thing easy and make complex possible...2、Convention Over Configuration --约定高于配置 Rails几乎成了敏捷web框架的代名词,Java社区的Grails,.NET开源项目Mono Rails和Subsonic...不过在他的地盘上开发,为什么要不按人家的规则做呢,况且人家的目录结构,命名规则以及URL到action的映射都很合理很清晰,Mix上会发布的asp.net mvc 在URL Routing上会有很大的增强...,MonoRail项目也在加强URL Routing这块的内容,看来自己要创建一套规则也容易。...SubSonic项目和Castle的ActiveRecord的子项目,由于.net静态语言的原因,在动态特性的实现上没有RoR中那么灵活,它基于.net中的attribute来标识字段和关系,SubSonic
memcached -I 10m # Allow objects up to 10MB 2、开始支持64位操作系统 memcached的介绍可参考IBM网站上的文章memcached 和 Grails...,第 1 部分:安装和使用 memcached,windows上的使用方法参烤在 ASP.NET 環境下使用 Memcached 快速上手指南 。
领取专属 10元无门槛券
手把手带您无忧上云