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
ProjectDescription
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 4?

This section covers all the new features introduced in Grails 4.

1.1.1 Updated Dependencies

Grails 4 ships with the following dependency upgrades:

  • Groovy 2.5.6

  • GORM 7 and Hibernate 5.4 (now the default version of Hibernate for new applications)

  • Spring Framework 5.1.5

  • Spring Boot 2.1.3

  • Gradle 5.1.1

  • Spock 1.2

1.1.2 Micronaut Parent Context

Micronaut is now the parent application context of Grails thus allowing using many Micronaut features including the Micronaut HTTP Client and Kafka Client.

Micronaut has also been used to improve startup and reduce overall memory consumption of Grails applications (along with associated improvements in Spring Boot 2.1).