Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pivotal Webinar: Why Do I recommend Spring?

Pivotal Webinar: Why Do I recommend Spring?

Is Spring the new legacy as quite a few people tell you on their blogs? I disagree on many levels. Throughout this session I will holistically detail without any polemics why I do recommend using the Spring Framework and its ecosystem. Aspects that will be covered include: operational impacts, ecosystem, coding and road maps. This presentation is aimed at IT managers, Architects and Developers alike.

Tuesday, July 22nd, 2014 3:00 pm BST Time (London, UTC+1)

Tuesday, July 22nd, 2014 10:00 am Pacific Daylight Time (San Francisco, UTC-07:00)

21a532a137b506128914478ac521fc8b?s=128

Michael Plöd

July 21, 2014
Tweet

More Decks by Michael Plöd

Other Decks in Programming

Transcript

  1. Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Photos / Graphics (c) Michael Plöd Photo on Slide 34 is licensed from istockphoto Pointy Font licensed from Bitfoundry Why do I recommend the Spring Framework to my customers Michael Plöd, Independent Consultant @bitboss
  2. Michael Plöd Software- Developer / -Architect Author Java Magazin /

    regular conference speaker @bitboss http://speakerdeck.com/mploed
  3. 100% independent

  4. 2005 Java EE Developer Spring Developer

  5. 2014 Java EE Developer Spring Developer

  6. Java EE vs Spring

  7. Java EE with or without Spring !

  8. You‘ll get your projects delivered with both stacks

  9. I will discuss the topic on an architectural decision-maker level

  10. Myths and Legends

  11. Spring is an XML Hell

  12. 0lines of XML for a Spring based Web Application

  13. Spring is complex

  14. You don‘t need the force to use Spring!

  15. Spring has too many dependencies and makes WAR Files huge

  16. Is this your runtime environment?

  17. Spring is proprietary and not portable

  18. Who has ported a usual JEE enterprise application as a

    drop-in?
  19. A holistic examination is important

  20. Ops Road-Map Code

  21. Operational Aspects

  22. Infrastructure

  23. Infrastructure App Server Servlet Container Operations Team

  24. Update Volume App Server Servlet Container Server Runtime Libraries like

    CDI, Servlet, JPA, JSF, ... Eventually JVM A lot of planning and testing is required Integration in Monitoring ...
  25. Project Libs

  26. Project Libs Hibernate ... Spring Development Team

  27. Update Volume Hibernate ... Spring Dedicated, only single Libraries Ad

    Hoc Reduced test effort
  28. Roundtrips Hibernate ... Spring App Server Servlet Container 2-4 Months

    2-3 Years
  29. DEV OPS vs ?

  30. With Spring I achieve an increased flexibility by loosely coupling

    the infrastructure to the runtime
  31. Coding

  32. ? Are Dependency Injection and Testing game changers

  33. Free your mind: we are in 2014 and not in

    2005 anymore
  34. Dependency Injection and Testing are commodity

  35. More important is the overall ecosystem

  36. Spring builds upon Java EE Scheduling MVC REST JMX Testing

    Caching Profiles DI AOP TX JMS AOP JDBC ORM OXM Expression JSR-250 JSR-330 JTA JDBC 4.1 JPA 2.0 JSF 2.0 JSR-303 JMX 1.0
  37. WebServices AMQP Roo Security OAuth Data JPA MongoDB Neo4j GemFire

    HBase Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch Social Twitter LinkedIn Facebook WebFlow Scheduling MVC REST JMX Testing Caching Profiles DI AOP TX JMS AOP JDBC ORM OXM Expression Batch Integration Mobile
  38. Spring Data by example Data JPA MongoDB Neo4j GemFire HBase

    Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch
  39. JPA 2 Query ... public class PersonDAO ... { private

    EntityManager em; public List<Person> findByFirstname(String firstname) { Query q = em.createQuery(“from Person p where p.firstname = :name “) .setParameter(“name“, firstname) return q.getResultList(); } } You end up writing many simple queries
  40. Spring Data @Repository public interface PersonRepository extends JpaRepository<Person, Long> {

    List<Kunde> findByFirstname(String firstname); }
  41. Spring Data with QueryDSL @Repository public interface PersonRepository extends JpaRepository<Person,

    Long>, QueryDslPredicateExecutor<Person> { List<Kunde> findByFirstname(String firstname); } QPerson P = QPerson.person; BooleanExpression hasBirthday = p.birthday.eq(...); BooleanExpression livesInLinz = p.adress.city.eq("Linz"); Person result = personRepository.findAll(hasBirthday.and(livesInLinz));
  42. Spring Data also adresses NoSQL, Big Data and Data Grids

    Data JPA MongoDB Neo4j GemFire HBase Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch
  43. Where are the Java EE Answers to NoSQL, Mobile, Social,

    ...?
  44. Keep in mind App Server Servlet Container Server Runtime Libraries

    like CDI, Servlet, JPA, JSF, ... Eventuell JVM A lot of planning and testing is required ! Ususal Roundtrip is 2-3 years !
  45. Spring offers a consistent programming model with many helpful abstractions

    and utilities besides the basics
  46. Road-Maps

  47. Java EE 6 12 / 2009 Mid 2011 12 /

    2010 01 / 2012 02 / 2012 12 / 2009 Final Spec Release (GlassFish, no support) 12 / 2010 JBoss 6 (Web Profile, no support) Mid 2011 WebSphere 8 01 / 2012 WebLogic 12c 02 / 2012 JBoss 7.1
  48. !The Java EE vendors took 1,5 years for the first

    fully professionally supported container
  49. Java EE 7: 3,5 years later 12 / 2009 Final

    Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7
  50. News around Java EE 7 Cloud Plattform will be delayed

    to Java EE 8 Social API is on a halt JCache won‘t make it in Java EE 7
  51. What is left?

  52. JAX-WS 2.0 CDI 1.1 JMS 2.0 after 11 years JPA

    2.1 Servlet 3.1 JSF 2.2 .... Java EE 7
  53. 12 / 2009 Spring 3.0 12 / 2011 Spring 3.1

    12 / 2012 Spring 3.2 12 / 2013 Spring 4.0 Spring since 2009 12 / 2009 12 / 2011 End 2012 Full professional support Available on all containers right away
  54. Some math Java EE API Release 12 / 2009 0

    months Server Mid 2011 18 months Available in organisations Mid 2013 18 + 24 months API is available in production API is available in production 42 months 3,5 years
  55. The same math Spring 4.0 API Release 12 / 2012

    0 months Available in organisations 3 / 2014 3 months API is available in production API is available in production 3 months
  56. Spring offers an innovative and reliable Road-Map with immediate availability

    and support
  57. Ops Road-Map Code

  58. Betrieb Road-Map Code With Spring I achieve an increased flexibility

    by loosely coupling the infrastructure to the runtime
  59. Road-Map Code Spring offers a consistent programming model with many

    helpful abstractions and utilities besides the basics Betrieb
  60. Road-Map Spring offers an innovative and reliable Road-Map with immediate

    availability and support Betrieb Code
  61. This is why I recommend the Spring Framework !

  62. Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software,

    Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Photos / Graphics (c) Michael Plöd Photo on Slide 34 is licensed from istockphoto Pointy Font licensed from Bitfoundry Go to http://spring.io/guides for further information Meet me at Spring One 2GX in Dallas September 8th - 11th michael.ploed@gmail.com @bitboss Thank you!