Over a million developers have joined DZone.

Spring Roo 1.0 - a RAD tool for Java

DZone 's Guide to

Spring Roo 1.0 - a RAD tool for Java

· Java Zone ·
Free Resource
The holidays were very happy for SpringSource project users.  Spring 3.0, Groovy 1.7, and Grails 1.2 were all released in GA before the year's end and now as we begin 2010, another present from Spring has arrived.  Introduced back in spring 2009, Spring Roo just released its final 1.0 version.  With this release, Java developers now have a stable, extensible, text-based RAD tool that can drastically simplify the development of Spring web applications.  

Spring Roo is a hybrid model that provides a mix of passive and active code generators.   Roo's shell provides passive generation, which is used to create .xml or .java files in most cases, and active generation, which builds a detailed metadata model with @Roo* to dynamically update .aj (AspectJ), and .jsp files (never .java files).  Another useful feature of the Roo shell is the context-sensitive “hint” and “help” commands.  The tool generates and maintains all required configuration files and project fragments.  There's TAB completion for nearly everything, command hiding, and automatic contextual awareness.  Roo will rollback any changes in case you make a mistake and the scriptable UI can “replay” scripts.  The main thing, Spring says, is that Roo won't get in your way.  The generated code will not interfere with custom code and the custom or overwritten methods won't be overwritten again by Roo.  All .aj files belonging to the Java class are compiled into just one .class file.


Spring Roo gives you all of these features out of box:

  • Project management
  • General object services
  • Entity support
  • Field management
  • Persistence
  • JUnit testing
  • Dynamic finders
  • Spring MVC, Spring Web Flow, and Selenium
  • JMS, SMTP and build system integration
  • Spring Security, Logging Setup, and more

The Architecture of Spring Roo is very unique.  Roo's developer assistance is in development-time only with no runtime library weighing down its deployed applications.  AspectJ inter-type declarations (aka. introductions or mixins) automatically generate id and version fields, getters, and setters for persistent fields in domain classes.  SpringSource emphasizes that this tool has no lock-in.  In fact, they say it can be removed from a project in less than ten minutes.  Another benefit for Java developers is that they don't need to learn a new language to use Roo.  It works with the Java language and its standard libraries.  Here are the libraries Roo works with:

  • Java
  • Spring Framework
  • Hibernate
  • JSP
  • Spring Security
  • Spring Web Flow
  • Log4J, Maven, AspectJ, and Eclipse/STS

Spring Roo has over 100 pages of documentation and an active forum.  You can download the GA version 1.0 release here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}