Your SlideShare is downloading. ×
Today's Spring framework
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Today's Spring framework


Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Today’s Spring framework Backbase Inspiration Lab 21 Nov 2013 Zoltan Altfatter
  • 2. Agenda Overview of Spring IO platform Spring Boot Spring Data Hypermedia with Spring HATEOAS CloudFoundry Demo Application Q&A
  • 3. Pivotal Initiative Spring (including Grails, RabbitMQ, Tomcat, Redis, GemFire) Cloudfoundry (the open PaaS (Platform as a Service)) Greenplum (analytic data warehouse using Hadoop)
  • 4. The Spring IO platform
  • 5. Spring Boot inspired by Dropwizard takes an opinionated view convention-over-configuration make you focus on the application spring command line tool - run Groovy scripts Embed Tomcat or Jetty directly unlike Spring Roo, no code generation no requirement for XML configuration
  • 6. Spring Boot Grooy Demo
  • 7. Spring Data Umbrella project for data access subprojects: JPA, MongoDB, Redis, Neo4J, GemFire Community managed subprojects: Elasticsearch, Solr, CouchDB, Riak Common concept: Repository, following the repository design pattern Repository, CrudRepository, PagingAndSortingRepository
  • 8. Spring Data JPA public interface RestaurantRepository extends CrudRepository<Restaurant, Long>, RestaurantRepositoryCustom { ! Restaurant findByName(String name); ! Page<Restaurant> findByAddressPostcode(String postcode, Pageable pageable); } interface RestaurantRepositoryCustom { void removeRestaurantWithWebsite(Website website); } class RestaurantRepositoryImpl implements RestaurantRepositoryCustom { @PersistenceContext private EntityManager em; ! @Override public void removeRestaurantWithWebsite(Website website) { TypedQuery<Restaurant> query = em.createQuery("from Restaurant where website like :website", Restaurant.class); query.setParameter("website", website); em.remove(query.getSingleResult()); } }
  • 9. Hypermedia with Spring Hateoas HATEOAS: Hypermedia As The Engine Of Application State hyper-text driven REST web services we are encoding metadata, or hypermedia, along with the repsonse Resources discoverable through publication of links that point to the available resources Spring Hateoas: provide an API to simplify the creation of hypermedia links and assembling the REST resource representation
  • 10. Example hyper-text REST response curl -v -H "Accept: application/json" http:/ /localhost:8080/resturants/1 < HTTP/1.1 200 OK < X-Application-Context: application < Content-Type: application/json < Transfer-Encoding: chunked < Server: Jetty(8.1.9.v20130131) < { "name" : "Cafe Olivier", "website" : { "value" : "http:/ /" }, "links" : [ { "rel" : "self", "href" : "http:/ /localhost:8080/restaurants/1" }, { "rel" : "address", "href" : "http:/ /localhost:8080/restaurants/1/address" }, { "rel" : "reviews", "href" : "http:/ /localhost:8080/restaurants/1/reviews" } ] }
  • 11. Spring in the cloud The deployment targets for modern applications vary considerably Java EE, Apache Tomcat/Jetty, Cloud (AWS, Google App Engine, Heroku, OpenShift, CloudFoundry) CloudFoundry - the open PaaS https:/ / You can install it in your datacenter (cf-vagrantinstaller using Chef, recommended way is BOSH) https:/ /
  • 12. Demo application
  • 13. Further tasks Use SQL service (cleardb) provided by CloudFoundry Store the model in MongoDB using Spring Data Using profiles switch between datastores on CloudFoundry Setup local CloudFoundry environment Add security to REST endpoints
  • 14. Social coordinates https:/ / https:/ / twitter: @altfatterz blog:
  • 15. Thanks!