Quick intro to Groovy
- Why Groovy is so much better than Java
- Installation of Groovy
- Skip semicolons and stuff
- Duck typing
- Groovy strings and beans
- Built-in data-types, such as lists, maps, ranges and regexes
- Groovy operators
- Closures (lambda expressions)
- Meta-programming
Grails Overview
- Why Grails makes web development super fast
- Grails components
- Installation of Grails
- Kick-starting a small Grails application
Controllers
- How a URI is mapped to controllers and actions
- Rendering HTML
- Rendering XML
- Rendering JSON
- Redirections
- Implicit variables
- The flash scope
Groovy Server Pages (GSP)
- How views are associated with controller actions
- Implicit variables at GSP pages
- Including GSP fragments
- Layouts using SiteMesh
Services
- What is a service
- Basic definition
- Dependency injection of services
- Scope and life-cycles
- Transactional services
Tags
- Logics tags
- Rendering tags
- Form tags
i18n
- What is i18n
- Setting the locale
- Message tag
- Swapping the locale
- Defining a new messge translation
User-Defined Tags
- How to define your own tags
- Namespaces
- Rendering tags
- Conditional tags
- Iterative tags
Domain Classes and GORM
- What is ORM (Object Relational Mapping)
- What is Hibernate
- Creating domain classes
- Basic CRUD (Create Read Update Delete)
- Data sources
- Fetching all or single object
- Pagination
- Scaffolding
- Simple relations
- Finder queries
GORM Constraints
- Syntax
- Overview of constraints
- How to deal with violations
Configurations
- YAML vs GroovyConfig configuration files
- Logging
- URL mappings
- Data sources
- Build dependencies
Grails Plugins
- Overview of useful plugins and the plugins portal
- Understanding the differences between plugins for Grails version 2 and version 3
- Some use cases