Spring Roo 1.0 - a RAD tool for Java
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:
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:
Spring Roo has over 100 pages of documentation and an active forum. You can download the GA version 1.0 release here.
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.






Comments
Duc Tung, Vu replied on Tue, 2010/01/05 - 5:38am
I got the feeling that Roo is somewhat as Grails, but more closer to Spring, Spring MVC and Java pure. When more speed/performance is needed, should one go Roo than Grails, right?
Thing i dont like from Grails:
Grails Plugins as Spring Security and Spring Web Flow (in Grails 1.2) wrap only some portion of features of the original libs
But in Java Pure MVC Framework there is reload/restart problem, that impacts the productivity very much. Anytime when Java code (Controller, Service) is changed, App server must be restarted, it costs time.
Antonio Pagano replied on Wed, 2010/01/06 - 8:08am