• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Extreme Web Productivity with Spring Roo
 

Extreme Web Productivity with Spring Roo

on

  • 18,583 views

Discussion of the Web UI features in Spring Roo. Spring Roo is a Java-based rapid application development framework. This presentation was given by me at SpringOne 2GX Americas in October 09.

Discussion of the Web UI features in Spring Roo. Spring Roo is a Java-based rapid application development framework. This presentation was given by me at SpringOne 2GX Americas in October 09.

Statistics

Views

Total Views
18,583
Views on SlideShare
13,445
Embed Views
5,138

Actions

Likes
5
Downloads
374
Comments
1

16 Embeds 5,138

http://www.ksug.org 4127
http://localhost 270
http://springframework.tistory.com 200
http://blog.ksug.org 189
http://www.slideshare.net 155
http://ksug.org 127
http://yunsunghan.tistory.com 53
http://localhost:8080 4
http://127.0.0.1 3
http://www.yd4p.com 2
http://www.hanrss.com 2
file:// 2
http://amel.dyndns-web.com 1
http://www.mefeedia.com 1
http://www.docshut.com 1
http://personal-pc 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • See http://www.slideshare.net/benalexau/introduction-to-spring-roo-100-2805183 for a more introductory presentation on Spring Roo 1.0.0, or http://www.slideshare.net/benalexau/spring-roo-100-technical-deep-dive if you'd like to learn about the technical internals that power the tool.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Extreme Web Productivity with Spring Roo Extreme Web Productivity with Spring Roo Presentation Transcript

    • Extreme Web Productivity with Spring Roo Stefan Schmidt - SpringSource
    • Agenda •  Example Application •  Roo Web Features & Details •  Add-on Demonstrations •  Spring Roo Roadmap SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Agenda •  Example Application •  Roo Pizza Shop •  Roo Web Features •  Add-on Demonstrations •  Spring Roo Roadmap SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Pizza Shop Domain Model SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Roo Pizza Shop Script project --topLevelPackage com.springsource.pizzashop persistence setup --provider HIBERNATE --database MYSQL database properties set --key database.url --value jdbc:mysql://localhost:3306/pizza database properties set --key database.username --value root entity --class ~.domain.Topping --testAutomatically field string --fieldName name --notNull --sizeMin 2 entity --class ~.domain.Base --testAutomatically field string --fieldName name --notNull --sizeMin 2 entity --class ~.domain.Pizza --testAutomatically field string --fieldName name --notNull --sizeMin 2 field number --type java.lang.Double --fieldName price --min 0 --primitive field reference --type ~.domain.Base --fieldName base --notNull field set --element ~.domain.Topping --fieldName toppings --cardinality MANY_TO_MANY entity --class ~.domain.PizzaOrder –testAutomatically field string --fieldName name --notNull --sizeMin 2 field string --fieldName address --sizeMax 50 field date --type java.util.Date --fieldName deliveryDate --class ~.domain.PizzaOrder field set --element ~.domain.Pizza --fieldName pizzas --sizeMin 1 field number --type java.lang.Double --fieldName total --min 0 --primitive controller all --package ~.web logging setup --level DEBUG --package WEB selenium test --controller com.springsource.pizzashop.web.BaseController finder add --finderName findPizzasByToppingsAndPriceLessThan --class ~.domain.Pizza security setup controller scaffold --class ~.web.PublicPizzaController --path /public/pizza --disallowedOperations create,update,delete --entity ~.domain.Pizza web flow SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Demonstration Creating the domain model SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Agenda •  Example Application •  Roo Web Features & Details •  Web Architecture •  Web Artifacts •  Commands •  Directory Layout •  REST URI Mappings •  Add-on Demonstrations •  Spring Roo Roadmap SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Architecture •  Controllers interact with Domain entities •  OpenEntityManagerInViewFilter •  "Open EntityManager in View" pattern •  JPA EntityManager bound to the thread for the entire processing of the request •  allow for lazy loading in web views •  original transactions already being completed •  Service layer optional •  used for business logic spanning multiple entities SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Artifacts •  Java & Aspects •  Spring MVC @Controllers •  Property Editors •  JSPX •  clear format and structuring •  fully XML compliant •  Spring JS & Dojo •  client-side validation •  form usability improvements SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Artifacts (cont.) •  CSS •  flexible UI customization •  Apache Tiles •  flexible templating of jspx pages •  Tags •  reusable pagination •  theme selectors •  language selectors •  URLRewrite Filter •  simplification of URIs SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Artifacts (cont.) •  XML •  configuration of various technologies •  Spring MVC & WebFlow application contexts •  Tiles configurations •  web.xml •  Properties Files •  internationalization support via message properties •  theming configuration SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Roo Web Commands •  Generation of Web artifacts •  controller scaffold •  generate a controller for a given entity •  controller all •  generate controllers for all entities without an existing controller •  controller class •  generate a simple Spring @MVC controller with a post and a get method SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Demonstration The Web directory SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Project Directory Layout •  All web-related artifacts in src/main/webapp SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Web Project Directory Layout Directory Purpose /styles style sheets (CSS) /images graphics /WEB-INF/classes/*.properties theme configurations /WEB-INF/spring/*.xml Web-related Spring application contexts /WEB-INF/i18n/*.properties internationalization message files /WEB-INF/layouts/layout.jspx Tiles definition for master layout /WEB-INF/tags/*.tagx Tag libraries (pagination, language, etc) /WEB-INF/views/**/* Tiles and other view artifacts /WEB-INF/web.xml Web application context /WEB-INF/urlrewrite.xml URL rewrite filter configuration SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • REST URI Mapping Resource GET PUT POST DELETE Create a new List the members of topping in the Collection URI such as the collection. For collection where http://domain.com/ example list all the Not used. Not used. the ID is assigned pizzashop/topping/ toppings available in automatically by the application. the collection. Update the Delete the Member URI such as Retrieve the addressed addressed addressed http://domain.com/ Not used. topping with id=5 topping with topping pizzashop/topping/5 id=5. with id=5. Member URI such as Create Form - returns http://domain.com/ an initialized, but Not used. Not used. Not used. pizzashop/topping/ empty topping for form form binding. Member URI such as Update Form returns http://domain.com/ the topping resource Not used. Not used. Not used. pizzashop/topping/5/ which is pre-populated form for form binding SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Agenda •  Example Application •  Roo Web Features & Details •  Add-on Demonstrations •  Selenium Tests •  Dynamic Finders •  Spring Security •  Web Flow •  Spring Roo Roadmap SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Demonstration Selenium Tests Dynamic Finders Spring Security Spring Web Flow SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • @RooWebScaffold @RooWebScaffold( path = "public/order", automaticallyMaintainView = true, formBackingObject = PizzaOrder.class, update = false, delete = false, create = true, exposeFinders = true, dateFormat = “dd-MM-yyyy”) @RequestMapping("/public/order/**") @Controller public class PublicPizzaOrderController { }! roo> controller scaffold --name ~.web.PublicPizzaOrderController --entity ~.domain.PizzaOrder -- path public/pizza --disallowedOperations update,delete --dateFormat dd-MM-yyyy SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Agenda •  Example Application •  Roo Web Features & Details •  Testing & Securing Views •  Web Flow •  Spring Roo Roadmap SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Roadmap •  Ordering & sorting of entities •  Form field & menu ordering •  Ajax (partial page refresh) •  Content negotiation •  UI usability and look & feel enhancements •  Drop-in templating •  Spring Blaze DS & Flex UI •  Google Web Toolkit UI •  Comet & Bayeux Note: The information on the roadmap is intended to outline our general product direction and should not be incorporated into any contract. Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Project Resources •  Home •  http://www.springsource.org/roo •  Contains links to all other resources •  Forum •  http://forum.springsource.org •  Roo team actively monitor forum and answer queries •  Issues •  http://jira.springframework.org/browse/ROO •  Twitter •  #roo hash key •  follow @schmidtstefan & @benalexau SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.
    • Q&A SpringOne 2GX 2009. All rights reserved. Do not distribute without permission.