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

No notes for slide

Today's Spring framework

  1. 1. Today’s Spring framework Backbase Inspiration Lab 21 Nov 2013 Zoltan Altfatter
  2. 2. Agenda Overview of Spring IO platform Spring Boot Spring Data Hypermedia with Spring HATEOAS CloudFoundry Demo Application Q&A
  3. 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. 4. The Spring IO platform
  5. 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. 6. Spring Boot Grooy Demo
  7. 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. 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. 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. 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. 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. 12. Demo application
  13. 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. 14. Social coordinates https:/ / https:/ / twitter: @altfatterz blog:
  15. 15. Thanks!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.