(Quick Reference)

1 Introduction

Version: 5.0.2

1 Introduction

Many modern web frameworks in the Java space are more complicated than needed and don’t embrace the Don’t Repeat Yourself (DRY) principles.

Dynamic frameworks like Rails and Django helped pave the way to a more modern way of thinking about web applications. Grails builds on these concepts and dramatically reduces the complexity of building web applications on the Java platform. What makes it different, however, is that it does so by building on already established Java technologies like Spring and Hibernate.

Grails is a full stack framework and attempts to solve as many pieces of the web development puzzle through the core technology and its associated plugins. Included out the box are things like:

All of these are made easy to use through the power of the Groovy language and the extensive use of Domain Specific Languages (DSLs)

This documentation will take you through getting started with Grails and building web applications with the Grails framework.

In addition to this documentation there are comprehensive guides that walk you through various aspects of the technology.

Finally, Grails is far more than just a web framework and is made up of various sub-projects. The following table summarizes some other key projects in the eco-system with links to documentation.

Table 1. Grails Ecosystem Projects
Project Description

GORM for Hibernate

An Object Mapping implementation for SQL databases

GORM for MongoDB

An Object Mapping implementation for the MongoDB Document Database

GORM for Neo4j

An Object Mapping implementation for Neo4j Graph Database

JSON Views

A View technology for rendering JSON on the server side

Groovy Server Pages

A View technology for rendering HTML and other markup on the server

Async Framework

Asynchronous programming abstraction with support for RxJava, GPars and more

1.1 What's new in Grails 5?

This section covers all the new features introduced in Grails 5

Overview

This release includes support for Apache Groovy 3, Micronaut framework 3, Gradle 7, Spring Boot 2.5, Spring framework 5.3, and Spock 2.0.

Apache Groovy 3 is a major highlight of this release. It comes with a brand new Parrot parser and a bunch of new features and capabilities. The Parrot parser supports additional syntax and language features, such as lambda expressions, default methods with interfaces, and a lot more. In addition, several new extension methods are added to existing Java classes. See the release notes for Groovy 3.0 for details.

Grails framework 5 updates to Spring 5.3.10 and Spring Boot 2.5.5. We strongly recommend checking the following Spring technologies release notes for more information.

Grails framework 5 is built with Groovy 3.0.7, which requires JDK 8 as the minimum version of JRE. We have tested most Grails projects up to JDK 14.

Important Changes

Deprecating ‘dot’-Based Navigation

The ‘dot’-based navigation to Grails config is deprecated and will be removed in the future.

We request that you update your plugins to use configuration beans @ConfigurationProperties or @Value, or access configuration settings using grailsApplication.config.getProperty(‘a.b.c’, String) instead of grailsApplication.config.a.b.c. For more information, read the documentation at Creating and Installing Plugins.

Default Autowire By Type

In previous versions, the beans inside the Grails DataService were autowire by name, but this is changed to autowire by type in Grails framework 5. Use the Spring @Qualifier annotation to autowire by name. For details, see the Spring documentation for Fine-tuning Annotation Based Autowiring with Qualifiers.

Grails Gradle Plugin

The Grails Gradle Plugin is moved out of grails-core and may follow separate versioning, so you should decouple the grailsVersion Gradle property from grailsGradlePluginVersion in existing applications.

Grails Gradle Publish Plugin Removed

The Grails Gradle Publish plugin used the Bintray API to publish artifacts. However, after the JFrog shutdown of Bintray, this stopped working. We have removed this plugin from the new Grails Plugin applications.

1.1.1 Updated Dependencies

Grails 5.0.2 ships with the following dependency upgrades:

  • Groovy 3.0.7

  • Micronaut 3

  • Micronaut for Spring 4

  • GORM 7.1.0

  • Spring Framework 5.3

  • Spring Boot 2.5

  • Gradle 7.2

  • Spock 2.0-groovy-3.0

  • Grails Testing Support 2.2.0