Web Frameworks

43.1 Grails

A full-stack, convention-over-configuration MVC framework built on Spring Boot, with GORM (data access), GSP views, and plugins. Grails 6/7 targets modern Spring Boot and Groovy 4 (Grails moved to the Apache Software Foundation in 2025).

GORM: dynamic finders (findByTitleAndAuthor), where queries (Book.where { year > 2000 }.list()), criteria (Book.createCriteria().list { like('title', 'G%') }), HQL, multiple datastores (Hibernate, MongoDB, Neo4j).

// grails-app/domain/Book.groovy
class Book {
    String title
    String author
    Date published
    static constraints = { title blank: false; author nullable: true }
    static mapping = { sort 'title' }
}

// grails-app/controllers/BookController.groovy
class BookController {
    static allowedMethods = [save: "POST"]
    def index() { [books: Book.list(max: 10)] }
    def show(Long id) { respond Book.get(id) }
    def search(String q) { render(view: 'index', model: [books: Book.findAllByTitleIlike("%$q%")]) }
}

43.2 Micronaut

A modern JVM framework with compile-time DI (no reflection), fast startup, low memory, and GraalVM native image support. It has first-class Groovy support.

@Controller("/hello")
class HelloController {
    @Get("/{name}")
    String hello(String name) { "Hello, $name" }
}

43.3 Others

Spring Boot with Groovy (works seamlessly), Ratpack (Groovy DSL, now largely unmaintained), Vert.x (Groovy language support), Javalin/Spark Java used from Groovy, Groovlets (Groovy servlets) and GSP/GSQL templates for simple web apps.