Transcript Spring Roo

Spring Roo
CS476
Aleksey Bukin
Peter Lew
What is Roo?
• Productivity tool
• Allows for easy creation of Enterprise Java applications
• Runs alongside existing projects
• Detects changes made to files, adjusts itself as necessary
What Roo is not.
• Roo is not a runtime
• Roo is not an IDE plugin
• Roo is not an annotation processing library
o Java EE 6 annotations are not used
o Compatible with Java EE 5
Core Technologies
• Spring Framework
• AspectJ
Spring
• Spring Framework is required by Roo
• Spring Aspects - using AspectJ definition language
• Configurable dependency injection
• Other Spring projects may be included
o Spring Security
o Spring Web Flow
o Maven
o Java Server Pages
• User decides which Spring components to integrate
AspectJ
• Aspect Oriented Programming (AOP) framework
• Inter-Type Declaration (ITD)
• Automatic Code Generation
o Interfaces
o Methods
o Fields
Why use Roo?
• Higher Productivity
• Compatibility with existing projects
• Auto-configuration available:
o Java Persistence API (JPA)
o Database backend
o Dependency injection
• Integration with existing technolgies
o Spring MVC layer
o Google Web Toolkit
o HTML 5 standard
Productivity
• Code generated in separate files
• Independent from project
• ITDs are referenced automatically
• Incremental approach to application-building
• Technologies and frameworks automatically added on-demand
Compatibility
• Compatible with Java EE 5
• SpringSource certified architecture
• Automatic maintenance and updates of XML, JSP files
Convenience
• Runs in background
• Simple command-line interface
• Easy to add or remove
• Fail-safe, keeps track of changes made to filesystem
References
• http://www.springsource.org/spring-roo#documentation
• http://www.eclipse.org/aspectj/
• http://www.springsource.org/documentation