1 Introduction
Version: 2023.3.0
1 Introduction
Grace is a fork of Grails 5.1.x that started development in early 2022, it’s a powerful and open-source One-Person web framework used to build enterprise-grade Spring Boot applications with the powerful Groovy programming language. The core framework is very extensible and there are numerous Plugins available that provide easy integration of add-on features.
Why Grace?
Grace inherits the excellent concepts and designs of Grails, and based on this, has undergone significant restructuring to ensure that each module is independent and decoupled, such as Grace API, Grace Boot, Grace CLI, Grace Plugin API, Grace Plugin Core, Grace Spring Boot, Grace Util. Meanwhile, in order to better focus on maintenance and upgrades, Grace also merged the previously spun-off modules, Converters plugin, GSP, Grace Test Support. Grace Boot as an Auto-configuration, it will load all other modules and plugins. Grace follows good modular design, and these modules can be used independently in Spring Boot applications.
Spring is the foundation for Grace, which is built on top of Spring Boot. To better support Spring Boot and integrate with other Spring ecosystems, Grace has rewritten Plugin.doWithSpring()
using Spring Boot’s Auto-configuration, which also reduces redundant configurations and provides significant performance improvements. Grace has also provided Configuration Metadata files include in Grace plugins' jars, the files are designed to let IDE developers offer contextual help and “code completion” as users are working with application.properties or application.yaml files. So, a Grace plugin is an extended Spring Boot Starter.
It is worth mentioning that Grace supports all current versions of Spring Boot, including 2.7, 3.0, 3.1, 3.2, 3.3, 3.4, and 3.5. This makes the upgrade path easier and more manageable.
Grace has been actively developing, bringing numerous improvements and new features, including Plugins, GSP, Console, Shell, and Profiles. Of course, it has also fixed a large number of legacy defects left in Grails 5, this makes developers happy.
You can learn more on the page What’s New in Grace Framework.
Grace vs Spring Boot
Grace and Spring Boot frameworks are excellent for building web applications, but their use depends on what you want. Generally, Grace framework may be advantageous in full-stack and monolithic applications, but Spring Boot is preferred for developing complex and microservice applications.
Grace is not a replacement for Spring Boot, it is built on top of Spring Boot. It provides its' own Spring Boot Starters - Grace Boot as an AutoConfiguration, it will load all other modules and plugins. Grace follows good modular design, and these modules can be used independently in Spring Boot applications. So, a Grace application is really a Spring Boot application.
Grace has better developer productivity than Spring Boot. Because it follows the convention over the configuration principle, it minimizes code requirements. This enhances productivity and fosters faster app development. The framework creates faster and more functional prototypes than Spring Boot due to its simple code generation like scaffolding and CoC.
Grace has better support Groovy than Spring Boot. Grace fully embraces Groovy to enable many features that would not be possible using Java alone, including flexible and powerful Plug-in architecture and a rich Plugin ecosystem and many built-in Dynamic Module types, many DSLs, AST Transformations, Trait-based solutions, and much more.
Grace provides a powerful CLI that allows you to quickly create new projects of many different types using Application Profiles and Templates and get started easily. These are all extensible and easy to customize, you can create your own Profiles, Templates, and Commands to meet any of your needs. The learning curve for Grace is moderate and more straightforward than Spring Boot due to its emphasis on convention and simplicity.
You can learn more on the page Grace vs Spring Boot.