SpringRoo is an open source tool that enables rapid Java web application development. It uses code generation and conventions to quickly generate common structures like entities, repositories, services, and web layers. Developers can focus on business logic rather than boilerplate coding. SpringRoo allows creating full-featured Java applications quickly without compromising on technology choices or best practices. It utilizes standard Java, Spring, AspectJ, and Maven to build applications for easy long-term maintenance and development.
1 of 29
Downloaded 34 times
More Related Content
Rapid application development with spring roo j-fall 2010 - baris dere
2. Agenda
? SpringRoo introduction
? Why use it?
? Beginning with SpringRooBeginning with SpringRoo
? SpringRoo architecture
Add? Add-ons
? Usage and conventions
? Roadmap and resources
3. About Me
? Senior Software Engineer / Technical Lead
? 11 years experience with Java
? SCJP SCJD SCWCD SCBCDSCJP, SCJD, SCWCD, SCBCD,
SCEA(in progress)
? MCP MCAD NET? MCP, MCAD.NET
? RUP Certified
? Author for Java Magazine in Turkey
4. SpringRoo introduction (1)
? Open source (Spring subproject)
? Released in December 2009 (version 1.0)
? Ben Alex ¨C LeadBen Alex Lead
? Java 5 JDK or higher
A h M 2 0 9 hi h? Apache Maven 2.0.9 or higher
? Latest stable version 1.1.0 (October 2010)
5. SpringRoo introduction (2)
? Extensible, text based RAD tool
? Command-line shell or STS
? Active/Passive code generationActive/Passive code generation
? Maintaining files during project lifecycle
N t ti (d l t ti l )? Not a runtime (development-time only)
? Not an IDE plugin
7. Why use it?
? Higher Java productivity
? Stock-Standard Java
? Usable and LearnableUsable and Learnable
? Easy to remove
N E i i T d Off? No Engineering Trade-Offs
8. Why use it? (2)
? Higher Java productivity
¨C Takes days to start a new project
¨C Reuse their existing knowledge, skills and
experience
10. Why use it? (4)
? Usable and Learnable
¨C Text-based interfaces are often more appropriate
than GUIs
¨C Tab-based completion system
¨C Contextual awareness
¨C Command abbreviation
¨C ¡°hint¡± command
11. Why use it? (5)
? Easy to remove
¨C Risks to use a tool
¨C SpringRoo does not exist at runtime
¨C Easy to remove SpringRoo
? Push in refactor
? Regular expression based find and replace
12. Why use it? (6)
? No Engineering Trade-Offs
¨C Incremental dependency addition approach
¨C AspectJ's excellent compile-time weaving
approach
? no dynamic proxy creation overhead
13. Beginning with SpringRoo
? Installation
? Starting a typical project
¨C Persistent layer / Reverse Engineeringy g g
¨C Web layer
¨C Integration and Selenium testsIntegration and Selenium tests
¨C Securing the application
¨C IDE supportIDE support
¨C Customizing
¨C BackupBackup
15. SpringRoo architecture
? Command-line shell
? Core components
? AspectJ ITD¡¯s for ¡°active¡± generationAspectJ ITD s for active generation
? Optional Services Layer
N DAO L? No DAO Layer
? Add-ons
20. SpringRoo architecture (6)
? Optional Services Layer
¨C Most logic can be placed in the web controller
? Exceptions:p
¨C Need multiple entities
¨C Business logic callable from outside (remote, timer,Business logic callable from outside (remote, timer,
etc)
¨C Easier to test (mock http requests)( p q )
? Create Services Layer
¨C Annotate your service class with @ServicesAnnotate your service class with @Services
21. SpringRoo architecture (7)
? No DAO Layer
¨C Not strictly essential to creating typical web
applications
¨C Request ROO-301 - Vote
22. Add-ons
? Adobe Flex
? Apache ActiveMQ
? Java Bean Validation
? Java Database Connectivity
? SpringSource Tool Suite
? Spring Integration
? Apache Maven
? Apache OpenJPA
? Apache Tiles
y
? Java Message Service
? Java Persistence API
? Java Transaction API
g g
? Spring Framework
? Spring Security
? Spring Web Flow
? Apache Tomcat
? AspectJ
? AspectJ Development Tools
? Cloud computing
? Java Server Pages
? Jetty
? JUnit
? Log4J
? URL Rewrite Filter
? Web application resource
(WAR) packaging
? Cloud computing
? Dojo Toolkit
? Eclipse IDE
? EclipseLink
? Log4J
? Representational State
Transfer (REST)
? Selenium
? Google Web Toolkit
? Google App Engine
? Hibernate
J 5
? OSGi add-ons
? Solr search
? SpringSource tc Server with
Insight? Java 5+ Insight
23. Add-ons (2)
addon create simple --topLevelPackage com.mycompany.myproject.roo.addon
? Create a CommandMarker implementation
Annotate with @ScopeDevelopmentShell
p p g y p y yp j
? Annotate with @ScopeDevelopmentShell
? Create a command method
? Annotate with @CliCommand(value=¡°¡±,
title=¡°¡±)
? Create a command available method
? Annotate with @CliAvailabilityIndicator(¡°¡±)? Annotate with @CliAvailabilityIndicator( )
? Perform package
24. Add-ons (3)
? Version 1.1.0 (27th of October 2010)
? Apache Felix ¨C OSGi Framework
? Service Component Runtime for componentService Component Runtime for component
management
? OSGi Bundle Repository for bundle resolution? OSGi Bundle Repository for bundle resolution
? Out-of-the-box hosting on Google Code
? PGP based security infrastructure
? Email OBR repository URL to s2-p y
roobot@vmware.com
26. Usage and conventions
? File conventions
¨C Roo will never change a .java in your project unless
you explicitly ask it
¨C Only .jspx and *_Roo_*.aj updated
¨C Never change the *_Roo_*.aj files
? IDE Usage
¨C Use AJDT pluginp g
? Shell features
¨C Save your Roo commandsSave your Roo commands
¨C Hinting, tab completion
27. Roadmap and resources
? More Add-ons
¨C Comet & Bayeux
¨C Ajax (partial page refresh)
¨C Ordering & sorting of entities
? Documentation
? Project resources