Spring Roo JaxItalia09

2,595 views
2,463 views

Published on

Spring ROO JaxItalia 2009 slides

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,595
On SlideShare
0
From Embeds
0
Number of Embeds
685
Actions
Shares
0
Downloads
52
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Spring Roo JaxItalia09

  1. 1. Spring Roo Massimiliano Dessì, Pronetics S.p.A. 1
  2. 2. Speaker Software Engineer and Architect ProNetics Founder Spring Italian User Group Presidente JugSardegna Onlus Committer/Contributor OpenNMS – MongoDB Autore Spring 2.5 Aspect Oriented programming Massimiliano Dessì, Pronetics S.p.a 2
  3. 3. Agenda Kanga Roo In Action 30 minutes (10 to build 20 to describe) less than one SBK manche in Phillip Island Circuit. Troy Bayliss Massimiliano Dessì, Pronetics S.p.a 3
  4. 4. Mission ROO migliora la produttività dello Sviluppo Java senza nessun compromesso sulla qualità e flessibilità. Per l’utente finale è un piccolo genio che lavora in silenzio sulle cose di cui non vorremmo preoccuparci Massimiliano Dessì, Pronetics S.p.a 4
  5. 5. Demo 10 minuti con Roo valgono più di alcuni giorni di lavoro Massimiliano Dessì, Pronetics S.p.a 5
  6. 6. Roo Roo is an extensible, text-based RAD tool for Java Roo is development-time only (no Roo runtime) ____ ____ ____ / __ / __ / __ / /_/ / / / / / / / / _, _/ /_/ / /_/ / /_/ |_|____/____/ 1.0.0.RC3 [rev 401] Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER. roo> Massimiliano Dessì, Pronetics S.p.a 6
  7. 7. Comandi Roo semplifica la creazione di un progetto assistendo l’utente – hint e help aiutano nei vari passi richiesti – TAB completamento ovunque – Comandi contestuali – In caso di errore ROO permette il rollback. – Comandi “scriptabili” per poterli riprodurre – Funzionamento conservativo e predittivo Massimiliano Dessì, Pronetics S.p.a 7
  8. 8. Stack Roo è costruito su: Java Spring Framework Java Persistence API (Hibernate) Java Server Pages Spring Security Spring Web Flow Log4J, Maven, AspectJ, Eclipse/STS Massimiliano Dessì, Pronetics S.p.a 8
  9. 9. Code generation Roo è un generatore di codice ibrido – utilizza in meglio del modello di generazione passivo e attivo Generazione passiva – Utilizzo della Roo shell per generare qualcosa (solitamente files .xml e .java) Generazione attiva – Costruzione di metadati con le annotazioni @Roo* – Aggiornamento incrementale di file .aj, .jsp Massimiliano Dessì, Pronetics S.p.a 9
  10. 10. Out of the Box •  Gestione progetto •  Oggetti generici •  Entity •  Gestione campi •  Persistenza •  JUnit test •  Finder dinamici •  Spring MVC, Spring Web Flow, Selenium •  JMS, SMTP •  Build system integration (Maven) •  Spring Security, Bundlor, Logging Massimiliano Dessì, Pronetics S.p.a 10
  11. 11. Project management project dependency add dependency remove backup Tutte le dipendenze usano Enterprise Bundle Repo Versionati, OSGi-compatible Massimiliano Dessì, Pronetics S.p.a 11
  12. 12. Oggetti generici – @RooJavaBean – getters e setters – @RooConfigurable – aggiunge @Configurable – @RooToString Massimiliano Dessì, Pronetics S.p.a 12
  13. 13. Entity entity - @RooEntity - JPA entity feature-rich –JPA @Entity con id, version, EntityManager – Automaticamente aggiunge count, findAll, findById, findEntries, persiste, rimuove -Comando con molte direttive opzionali Massimiliano Dessì, Pronetics S.p.a 13
  14. 14. Gestione campi field Scelta tra i tipi “comuni” La shell ricorda l’ultima entity su cui si è lavorato Opzioni per: – JPA annotations – JavaBean validation annotations – Java modifiers Massimiliano Dessì, Pronetics S.p.a 14
  15. 15. Persistenza Hibernate, OpenJPA, EclipseLink database più comuni persistence exception translation database properties list database properties set database properties remove Massimiliano Dessì, Pronetics S.p.a 15
  16. 16. JUnit test test integration test mock Massimiliano Dessì, Pronetics S.p.a 16
  17. 17. Finder dinamici Roo evita la scrittura di JPA Query language findersAggiunti come metodi statici alle entity finder list finder add Massimiliano Dessì, Pronetics S.p.a 17
  18. 18. MVC controller scaffold – Automatic REST controller per una entity – Automatic JSP creazione e manutenzione –modifica dei metodi permessi (CRUD subset) controller all Scaffold di tutte le entity controller class Solo il Controller nudo e crudo Massimiliano Dessì, Pronetics S.p.a 18
  19. 19. MVC Spring JS, Tiles e URL Rewrite selenium test webflow Massimiliano Dessì, Pronetics S.p.a 19
  20. 20. Smtp e JMS email sender setup field email jms setup field jms setup jms listener class Massimiliano Dessì, Pronetics S.p.a 20
  21. 21. Build System Integration perform clean -> mvn clean eclipse:clean” perform eclipse -> mvn eclipse:eclipse perform tests -> mvn test perform package -> mvn package perform command -> custom mvn command Massimiliano Dessì, Pronetics S.p.a 21
  22. 22. Varie security setup imposta spring security bundlor setup imposta Bundlor per OSGi logging setup imposta log4j script esegue uno script perform command -> custom mvn command Massimiliano Dessì, Pronetics S.p.a 22
  23. 23. Add-On Si possono creare degli addon, i comandi predefiniti sono: addon list addon install addon uninstall addon cleanup Massimiliano Dessì, Pronetics S.p.a 23
  24. 24. Upgrade Quando si aggiorna roo, possono cambiare i file .aj, che sono gli unici che l’utente non deve toccare perchè sono i responsabili della generazione attiva del codice Massimiliano Dessì, Pronetics S.p.a 24
  25. 25. Remove 1) Nell’ STS utilizzare push-in refactoring, questa trasferisce il contenuto dei file .aj nei file .java 2) Rimuovere I jar di ROO Annotation dal pom.xml 3) Rimuovere le annotazioni @Roo dai file .java Massimiliano Dessì, Pronetics S.p.a 25
  26. 26. Database embedded Q&A? Massimiliano Dessì, Pronetics S.p.a 26
  27. 27. Grazie per l’attenzione ! Massimiliano Dessì desmax74 at yahoo.it massimiliano.dessi at pronetics.it http://twitter.com/desmax74 http://jroller.com/desmax http://www.linkedin.com/in/desmax74 http://wiki.java.net/bin/view/People/MassimilianoDessi http://www.jugsardegna.org/vqwiki/jsp/Wiki?MassimilianoDessi Spring Framework Italian User Group http://it.groups.yahoo.com/group/SpringFramework-it Massimiliano Dessì, Pronetics S.p.a 27

×