Copyright © 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Making Java Development Fun
with Spring Roo
2Copyright © 2011 Accenture All Rights Reserved.
Antons Kranga
• Qualification:- 10+ years in Java- Certified Technology Architect- Java and OO Design Trainer
• Currently works in Accenture Architecture Innovation
• Specialized:- Enterprise Application Design- Enterprise Portals
• Likes:- Martial Arts- Embedded Devices
• WEB- http://www.linkedin.com/in/antonskranga
3Copyright © 2011 Accenture All Rights Reserved.
Agenda
1. Problems of Java Development
2. Introduction to the Spring Roo
4Copyright © 2011 Accenture All Rights Reserved.
Problems of traditional Java Applications
Pre warning message…
5Copyright © 2011 Accenture All Rights Reserved.
Problem 1: Dam Complex!!!
Even primitive JEE application is complex by it’s nature
7Copyright © 2011 Accenture All Rights Reserved.
Problem 3: Developers are too conservative
Should we always
keep fall into
traditions and
close our eyes for
innovation?
9Copyright © 2011 Accenture All Rights Reserved.
Goal of Spring Roo
• Make Java Development Fun
• Eliminate JEE Complexity
• Boost programmers productivity
• KISS and DRY
• Use simple but powerful commands
• Pragmatic code generation
• Aspect Oriented Programming
• Use DDD and eliminate DAO
• Service layer is optional!
etc
Goals of Roo
Methods to achieve goals
11Copyright © 2011 Accenture All Rights Reserved.
What is a Spring Roo
Addon
Addon
Addon
Addon
Addon
RooCore
Developer
Spring Application
changes observes and
changes
controls
12Copyright © 2011 Accenture All Rights Reserved.
Basic Spring Roo addons
Persistence
Dynamicfinders
SpringWebFlow
Spring Security
ProjectMgmt
Spring MVC
…
RooCore
Data
Web
Project
Configuration
14Copyright © 2011 Accenture All Rights Reserved.
Roo application development cycle
Project setup(project)
Configuration(e.g.
security setup)
Entity design(entity, field)
Web Setup(controller)
Only initial setupIterative use in
maintenance is
possible
16Copyright © 2011 Accenture All Rights Reserved.
Spring Roo UI concept
•Model-View-Controller
(MVC) concept
•Rich UI controls (free type
dropdown lists etc)
•JavaScript used to improve
user experience
17Copyright © 2011 Accenture All Rights Reserved.
What has been generated during for web
Static templates
WebApplication
Roo Coregenerate
Developer
uses/controls (via shell)
JSPX web pages
JSPX tags for controls
Internationalization (i18n)
Spring JavaScript
generate
Spring MVC Controllerclass CustomerController {
...
}
Domain Model
source
CSS, Pictures etc
JSPX View page<div xmlns:jsp=“...”
...
</div>
uses
18Copyright © 2011 Accenture All Rights Reserved.
Page Layout
layout.jspx base views
Header.jspx
menu.jspx
footer.jspx
Viewcustomer.jspx
product.jspxupdate.jspx
create.jspx
list.jspxloan.jspx