?    Why do I recommend    the    Spring Framework    to my customers
Michael PlödPartner and Principal Architect at SenacorTechnologies AGAuthor Java Magazin@bitbosshttp://speakerdeck.com/mpl...
100%independent
2005   Java EE DeveloperSpring Developer
2012   Java EE DeveloperSpring Developer
Java EE   vs Spring
Java EE!    with or     without     Spring
You‘ll get your projectsdelivered with both stacks
I will discuss the topic  on an architectural decision-maker level
Myths  andLegends
Spring  is anXML Hell
0   lines of XML for a    Spring based    Web Application
Spring   iscomplex
You don‘t need theforce to use Spring!
Spring has too many dependencies   and makesWAR Files huge
Is this yourruntimeenvironment?
Spring isproprietary and not portable
Who has ported a  usual JEE  enterpriseapplication as a   drop-in?
A   holisticexaminationis important
Ops   Code   Road-Map
Operational Aspects
Infrastructure
InfrastructureApp Server ServletContainer             Operations Team
Update Volume                          Libraries like              ServerApp Server    Runtime     CDI, Servlet,          ...
Project Libs
Project LibsSpring Hibernate         ...               Development Team
Update VolumeSpring                        Ad Hoc               Dedicated,               only single Hibernate            ...
Roundtrips Spring                         App Server  Hibernate                   Servlet          ...                Cont...
DEV   OPS
DEV        OPS      ?      vs
With Spring I achieve anincreased flexibility by  loosely coupling the   infrastructure to the          runtime
Coding
?          Are     Dependency       Injection          and        Testing    game changers
Free your mind:   we are in  2012  and not in  2005   anymore
Dependency  Injection     and   Testing     are commodity
More important is the overall ecosystem
Spring builds upon       Java EEDI AOP   TX   JMS    AOP      JDBC     ORM      OXM   ExpressionScheduling   MVC    REST  ...
Data                                    BatchJPA MongoDB Neo4j GemFire                                    Social          ...
DataJPA MongoDB Neo4j GemFire           HBase Redis JDBC Splunk Querydsl                              Spring Data  HDFS Ma...
JPA 2 Query...public class PersonDAO ... {  private EntityManager em;    public List<Person> findByFirstname(String firstn...
JPA 2 Query...public class PersonDAO ... {  private EntityManager em;    public List<Person> findByFirstname(String firstn...
Spring Data@Repositorypublic interface PersonRepository extends JpaRepository<Person, Long> {    List<Kunde> findByFirstna...
Spring Data with          QueryDSL@Repositorypublic interface PersonRepository extends JpaRepository<Person, Long>,  Query...
Spring Data alsoadresses NoSQL, Big Data and Data Grids              Data   JPA MongoDB Neo4j GemFire HBase       Redis JD...
Where are theJava EEAnswersto NoSQL, Mobile,    Social, ...?
Keep in mind             ServerApp Server   Runtime                         Libraries like     A lot of                   ...
Spring offers a consistentprogramming model andmany helpful abstractions and utilities besides the           basics
Road-Maps
Java EE 612 / 2009          12 / 2010    Mid 2011     01 / 2012   02 / 2012    12 / 2009   Final Spec Release (GlassFish, ...
!    The Java EE venors took      1,5 years         for the first fully    professionally supported             container
Java EE 7:3,5 years later    12 / 2009   Final Spec Release JEE 6    Q2 / 2013   Final Spec Release JEE 7
News around              Java EE 7                            JC a c                                  he w                ...
What is left?
Servlet 3.1          JSF 2.2             JPA 2.1JAX-WS 2.0              Java EE 7                         JMS 2.0         ...
Spring since                200912 / 2009                   12 / 2011       End 2012 12 / 2009     Spring 3.0       Full p...
Some math        Java EEAPI Release       12 / 2009        0 months   Server         Mid 2011         18 months Available ...
The same math    Spring 3.0API Release       12 / 2009      0 months Available in                   3 / 2010      3 months...
Spring offers aninnovative and reliable      Road-Map         withimmediate availability         and       support
Ops   Code   Road-Map
Thank you!          Senacor is hiringSoftware Developers and -Architects                 michael.ploed@senacor.com        ...
Upcoming SlideShare
Loading in …5
×

Why do I recommend the Spring Framework to my customers

1,684 views

Published on

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 on many levels without any polemics why I do recommend using the Spring Framework and it's ecosystem. Aspects that will be covered include: operational impacts, ecosystem, coding and road maps.

Published in: Technology
  • Be the first to comment

Why do I recommend the Spring Framework to my customers

  1. 1. ? Why do I recommend the Spring Framework to my customers
  2. 2. Michael PlödPartner and Principal Architect at SenacorTechnologies AGAuthor Java Magazin@bitbosshttp://speakerdeck.com/mploed
  3. 3. 100%independent
  4. 4. 2005 Java EE DeveloperSpring Developer
  5. 5. 2012 Java EE DeveloperSpring Developer
  6. 6. Java EE vs Spring
  7. 7. Java EE! with or without Spring
  8. 8. You‘ll get your projectsdelivered with both stacks
  9. 9. I will discuss the topic on an architectural decision-maker level
  10. 10. Myths andLegends
  11. 11. Spring is anXML Hell
  12. 12. 0 lines of XML for a Spring based Web Application
  13. 13. Spring iscomplex
  14. 14. You don‘t need theforce to use Spring!
  15. 15. Spring has too many dependencies and makesWAR Files huge
  16. 16. Is this yourruntimeenvironment?
  17. 17. Spring isproprietary and not portable
  18. 18. Who has ported a usual JEE enterpriseapplication as a drop-in?
  19. 19. A holisticexaminationis important
  20. 20. Ops Code Road-Map
  21. 21. Operational Aspects
  22. 22. Infrastructure
  23. 23. InfrastructureApp Server ServletContainer Operations Team
  24. 24. Update Volume Libraries like ServerApp Server Runtime CDI, Servlet, JPA, JSF, ... A lot of planning and testing Servlet is requiredContainer Eventually Integration in Monitoring JVM ...
  25. 25. Project Libs
  26. 26. Project LibsSpring Hibernate ... Development Team
  27. 27. Update VolumeSpring Ad Hoc Dedicated, only single Hibernate Reduced Libraries test effort ...
  28. 28. Roundtrips Spring App Server Hibernate Servlet ... Container2-4 Months 2-3 Years
  29. 29. DEV OPS
  30. 30. DEV OPS ? vs
  31. 31. With Spring I achieve anincreased flexibility by loosely coupling the infrastructure to the runtime
  32. 32. Coding
  33. 33. ? Are Dependency Injection and Testing game changers
  34. 34. Free your mind: we are in 2012 and not in 2005 anymore
  35. 35. Dependency Injection and Testing are commodity
  36. 36. More important is the overall ecosystem
  37. 37. Spring builds upon Java EEDI AOP TX JMS AOP JDBC ORM OXM ExpressionScheduling MVC REST JMX Testing Caching Profiles JTA JSR-250 JSR-330 JDBC 4.1 JSF 2.0 JPA 2.0 JSR-303 JMX 1.0
  38. 38. Data BatchJPA MongoDB Neo4j GemFire Social HBase Integration Twitter Redis JDBC Splunk Querydsl LinkedIn Facebook HDFS MapReduce Hive Mobile Pig Cascading SI/Batch Security WebFlow WebServices AMQP Roo OAuthDI AOP TX JMS AOP JDBC ORM OXM ExpressionScheduling MVC REST JMX Testing Caching Profiles
  39. 39. DataJPA MongoDB Neo4j GemFire HBase Redis JDBC Splunk Querydsl Spring Data HDFS MapReduce Hive by example Pig Cascading SI/Batch
  40. 40. 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(); }}
  41. 41. 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
  42. 42. Spring Data@Repositorypublic interface PersonRepository extends JpaRepository<Person, Long> { List<Kunde> findByFirstname(String firstname);}
  43. 43. Spring Data with QueryDSL@Repositorypublic 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));
  44. 44. Spring Data alsoadresses NoSQL, Big Data and Data Grids Data JPA MongoDB Neo4j GemFire HBase Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch
  45. 45. Where are theJava EEAnswersto NoSQL, Mobile, Social, ...?
  46. 46. Keep in mind ServerApp Server Runtime Libraries like A lot of planning CDI, Servlet, and testing Servlet JPA, JSF, ... is requiredContainer Eventuell JVM ! Ususal Roundtrip is 2-3 years !
  47. 47. Spring offers a consistentprogramming model andmany helpful abstractions and utilities besides the basics
  48. 48. Road-Maps
  49. 49. Java EE 612 / 2009 12 / 2010 Mid 2011 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
  50. 50. ! The Java EE venors took 1,5 years for the first fully professionally supported container
  51. 51. Java EE 7:3,5 years later 12 / 2009 Final Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7
  52. 52. News around Java EE 7 JC a c he w l be on‘t wil Java make orm EE 8 attf va EE 7 it in PlCl oud d to Ja del aye Social API is on a halt
  53. 53. What is left?
  54. 54. Servlet 3.1 JSF 2.2 JPA 2.1JAX-WS 2.0 Java EE 7 JMS 2.0 CDI 1.1 after .... 11 years
  55. 55. Spring since 200912 / 2009 12 / 2011 End 2012 12 / 2009 Spring 3.0 Full professional support 12 / 2011 Spring 3.1 Available on all containers right 12 / 2012 Spring 3.2 away
  56. 56. Some math Java EEAPI Release 12 / 2009 0 months Server Mid 2011 18 months Available in Mid 2013 18 + 24 monthsorganisations 42 monthsAPI is available in production 3,5 years
  57. 57. The same math Spring 3.0API Release 12 / 2009 0 months Available in 3 / 2010 3 monthsorganisationsAPI is available in production 3 months
  58. 58. Spring offers aninnovative and reliable Road-Map withimmediate availability and support
  59. 59. Ops Code Road-Map
  60. 60. Thank you! Senacor is hiringSoftware Developers and -Architects michael.ploed@senacor.com @bitboss http://www.senacor.com Photos / Graphics (c) Michael Plöd / Senacor Technologies AG Exceptions: Photos on Slides 2, 9 (c) Matthias Heyde; Photo on Slide 34 is licensed from istockphoto Pointy Font licensed from Bitfoundry

×