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

Why do I recommend the Spring Framework to my c...

Why do I recommend the Spring Framework to my customers

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.

Michael Plöd

April 04, 2013
Tweet

More Decks by Michael Plöd

Other Decks in Programming

Transcript

  1. Michael Plöd Partner and Principal Architect at Senacor Technologies AG

    Author Java Magazin @bitboss http://speakerdeck.com/mploed
  2. 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 ...
  3. 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
  4. 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
  5. Spring Data by example Data JPA MongoDB Neo4j GemFire HBase

    Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch
  6. 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(); } }
  7. 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
  8. 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));
  9. 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
  10. 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 !
  11. 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
  12. !The Java EE venors took 1,5 years for the first

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

    Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7
  14. 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
  15. 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
  16. 12 / 2009 Spring 3.0 12 / 2011 Spring 3.1

    12 / 2012 Spring 3.2 Spring since 2009 12 / 2009 12 / 2011 End 2012 Full professional support Available on all containers right away
  17. 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
  18. The same math Spring 3.0 API Release 12 / 2009

    0 months Available in organisations 3 / 2010 3 months API is available in production API is available in production 3 months
  19. Thank you! 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 Senacor is hiring Software Developers and -Architects [email protected] @bitboss http://www.senacor.com