120 likes | 246 Views
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
E N D
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 • Java EE 6 annotations are not used • 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 • Spring Security • Spring Web Flow • Maven • Java Server Pages • User decides which Spring components to integrate
AspectJ • Aspect Oriented Programming (AOP) framework • Inter-Type Declaration (ITD) • Automatic Code Generation • Interfaces • Methods • Fields
Why use Roo? • Higher Productivity • Compatibility with existing projects • Auto-configuration available: • Java Persistence API (JPA) • Database backend • Dependency injection • Integration with existing technolgies • Spring MVC layer • Google Web Toolkit • 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