41

Despite all I've read, I still can't figure out what Spring Roo actually is, and that's after reading the first chapter of Spring Roo In Action, What is Spring Roo?! I understand the motivation for simplifying the process of developing a Spring application, but what does Spring Roo actually do?

Can someone summarize the contents of that first chapter, specifically how Spring Roo reduces the complexity of developing a Spring app? The authors will probably see this, so do a good job!

naXa stands with Ukraine
  • 35,493
  • 19
  • 190
  • 259
Spring Roo
  • 411
  • 4
  • 4
  • 7
    It's a "lightweight developer tool that makes it fast and easy to deliver instant results!!!". Like, wow, I gotta get me one of those. Isn't it obvious what it does? Oh, wait, no, not really... – skaffman Aug 20 '10 at 15:48
  • As of May 2020, there's not a single answer here that actually helps anyone understand what Spring Roo does. Hoping for a good answer. Try seeing it from the perspective of someone who is completely new to Spring. – Nav May 27 '20 at 05:29

6 Answers6

22

Spring Roo is a toolchain for rapid development of Java application using all, some or none of those technologies:

  • Spring
  • Spring MVC
  • Spring Security
  • Spring Web Flow
  • AspectJ
  • JPA (Hibernate, EclipseLink, TopLink)
  • JMS (ActiveMQ, etc.)
  • GWT
  • JSPX
  • JSON
  • etc.

If you have developped applications with Rails, you will find this application stack oddly familiar, but applied to the Java language. Please note that Roo is not an abstraction layer for those technologies, it is an integration toolchain so that a lot of the boiler-plate is generated for you using some clever part of AspectJ and said technologies.

FYI, I have not affiliated with Spring Roo, I'm making a proof-of-concept built around it.

Lii
  • 11,553
  • 8
  • 64
  • 88
Claude Houle
  • 41,064
  • 8
  • 33
  • 42
  • 1
    Yes, Roo is a dev-time tool with no runtime component. As well as the technologies listed above, Roo can be extended via addons (that you can create using Roo itself) that generate and maintain the required source code (Java code, POM files, etc) for any Java technology you like. For example, there's an addon for adding a Vaadin UI to a Roo-generated app. – Andrew Swan Jul 03 '12 at 23:15
  • You should think of changing the roo wiki entry to include this stuff. http://stackoverflow.com/tags/spring-roo/info – Wes Dec 02 '12 at 23:48
14

Spring Roo is RAD tool which can create and manage your Spring based application. Its aim is to enhance Java developer productivity. It can't write business logic of your application but can handle configurational and infrastructural stuff. For more google "spring roo" :)

Lii
  • 11,553
  • 8
  • 64
  • 88
Shekhar
  • 5,771
  • 10
  • 42
  • 48
  • 1
    This pretty much nails it! :-) I could also add that it has no runtime component and no lock-in; it can be removed from your project in a few minutes, see http://www.springsource.org/roo/guide?w=intro#intro-why-use-it-easy-removal – Andrew Swan Oct 12 '11 at 03:15
4

I think that chapter assumes some familiarity with the tools Roo is trying to automate. You probably might not appreciate the amount of "convention" being applied by Roo behind the scenes unless you have tried putting an app based on various Spring and other "enterprise" components together :)

Try following up the names of the various tools (especially Maven and AspectJ)

Funnily, the Ruby crowd seems to fawn over such "magic" happening behind the scenes, whereas some Java folks are like "Convention over configuration are for sissy's, arrrh, I like to build my apps one xml file at time" ;)

I liked Ben Alex's talk where he introduced the thoughts behind Roo. Check it out if you have some time.

StudioEvoque
  • 902
  • 2
  • 9
  • 14
3

Spring Roo is a relatively easy to use developer tool that makes it fast and easy to deliver instant results. It does not really require that you learn a new language or have to relearn Java; instead, it uses a command line to simply help the coding along by generating fairly large chunks of code with fairly minimal effort. The interface allows users to make programs with exceptional functionality considering the little amount of time put into them.

aBarb
  • 49
  • 10
2

You can learn more about Spring Roo and use extra functionalities that roo doesn't implements using gvNIX framework.

https://github.com/disid/gvnix https://code.google.com/p/gvnix/

Here you have a guide to learn how to use Spring Roo and gvNIX extra functionalities:

https://github.com/DISID/gvnix-samples/blob/master/quickstart-app/README.adoc

Best Regards,

jcgarcia
  • 3,762
  • 4
  • 18
  • 32
1

Roo is just an automated tool for designing applications in Java, more easily and efficiently.

Roo brought all major components together, in a well-fashioned manner. Therefore, it became easier for developers to use them. The major technologies that Roo projects can instantly leverages are as follows:

  • Adobe Flex
  • Apache ActiveMQ
  • Apache Maven
  • Apache OpenJPA
  • Apache Tiles
  • Apache Tomcat
  • AspectJ
  • AspectJ Development Tools
  • Cloud computing
  • Dojo Toolkit
  • Eclipse IDE
  • EclipseLink
  • Google Web Toolkit
  • Google App Engine
  • Hibernate
  • Java 5+
  • Java *
  • JUnit
  • SpringSource tc Server with Insight
  • SpringSource Tool Suite
  • Spring Integration
  • Spring Framework
  • Spring Security
  • Spring Web Flow
  • URL Rewrite Filter
Scott
  • 21,211
  • 8
  • 65
  • 72
Sohil Jain
  • 11
  • 5