Spring Roo database reverse engineering

This post is about Database Reverse Enigneering (DBRE) in Spring Roo 1.0.x only!

For DBRE in Roo 1.1.x and 1.2.x have a look at this post.


Tom Chikoore has written a nice tutorial on how to do database reverse engineering with the current Spring Roo version (1.0.x family). Having database reverse engineering capabilities is one of the most requested features for Roo right now (see Jira Issue), and will hopefully be implemented in Roo 1.1. But until then the trick by Tom is quite useful to prototype applications with Roo and an existing database. Thanks to Tom for the excellent work.

The link to Tom”s tutorial:


A first insight into Spring Roo

I couple of days ago I gained my first insight into Spring Roo, a promising build tool for Java/Spring applications. There has been a talk by Eberhard Wolff, given at the Java User Group Hessen in Kassel. It was very interesting to see the (Kanga)Roo jumping out of the box and building a full stack Java application in minutes. Spring Roo’s goal is to help developers to rapidly build best practice Spring applications in Java. From what I have seen Spring Roo may be a big productivity burst in developing Spring applications from scratch using all the technologies you like and have used for many years (Spring, Spring MVC, Spring Security, JPA, Hibernate, Bean-Validation…).

Even though Spring Roo is already in Version 1.0, at some points it didn’t look that stable and complete. I assume there will be a lot of development going on in the coming year. So check out the project, cause now is the time when you can influence the direction the project is steering towards. And if Spring Roo is picked up and supported by a strong community I guess we will have a powerful rapid application development tool for Java/Spring in the future.

There is one thing about Spring Roo’s architecture I want to point out. I really like the way how generated code is separated from manually written code by using AspectJ inter-type declaration. Even though it might not be so intuitive to developers who have not been working with AOP so far. It is a more powerful and less error prone way in comparison to classical techniques like class inheritance and/or protected code segments in editable classes. While the generated code is physically stored in separated files, there is no runtime overhead as the AOP compiler weaves everything into one class file. You also gain a lot of benefits within your IDE (with AOP support) like compile-time checking, straight forward debugging, auto completion aso.

You find the slides of Eberhard’s presentation here: http://www.jugh.de/JUGH!/Dokumente/Eintrage/2010/2/25_Einfuhrung_in_SpringRoo%2C_Eberhard_Wolff_25.02.2010.html

More information is of course on the project site here (and as usual for Spring Source Projects the documentation is top!): http://www.springsource.org/roo

The wikipedia article is also kinda interesting (has a good list of supported Technologies and Add-Ons): http://en.wikipedia.org/wiki/Spring_Roo

There is also a free Spring Roo webinar comming on the 31 March given by the project founder Ben Alex. And I will give a short talk about Spring Roo at the Java User Group Karlsruhe on 24 March.