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

Warum empfehle ich meinen Kunden das Spring Framework

Michael Plöd
November 07, 2012

Warum empfehle ich meinen Kunden das Spring Framework

In den letzten Jahren wurde vermehrt die Diskussion JEE 6 vs. Spring geführt. Wobei immer öfter die Irrelevanz des Spring Frameworks heraufbeschworen wurde. Im Rahmen des Vortrags möchte ich - abseits jeglicher Polemik - schildern, warum das Spring Framework noch immer eine Daseinsberechtigung hat und warum ich meinen Kunden noch immer zum Einsatz von Spring rate.

Michael Plöd

November 07, 2012
Tweet

More Decks by Michael Plöd

Other Decks in Technology

Transcript

  1. Michael Plöd Partner und Principal Architect bei Senacor Technologies AG

    Autor Java Magazin @bitboss http://speakerdeck.com/mploed
  2. Update Umfang App Server Servlet Container Server Runtime Libraries wie

    CDI, Servlet, JPA, JSF, ... Eventuell JVM Viel Planung und Testing nötig Integration in Monitoring etc
  3. Die Basis von Spring setzt auf Java EE auf 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 als Beispiel 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(); } } Wir schreiben in der Regel viele kleine Queries wie diese
  7. Spring Data mit 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));
  8. Spring Data adressiert auch NoSQL, Big Data and Data Grids

    Data JPA MongoDB Neo4j GemFire HBase Redis JDBC Splunk Querydsl HDFS MapReduce Hive Pig Cascading SI/Batch
  9. Zur Erinnerung App Server Servlet Container Server Runtime Libraries wie

    CDI, Servlet, JPA, JSF, ... Eventuell JVM Viel Planung und Testing nötig ! Üblicher Roundtrip 2-3 Jahre !
  10. Java EE 6 12 / 2009 Mid 2011 12 /

    2010 01 / 2012 02 / 2012 12 / 2009 Final Spec Release (GlassFish, kein Support) 12 / 2010 JBoss 6 (Web Profile, kein Support) Mid 2011 WebSphere 8 01 / 2012 WebLogic 12c 02 / 2012 JBoss 7.1
  11. !Die Java EE 6 Vendoren haben 1,5 Jahre für den

    ersten voll unterstützten Container benötigt
  12. Java EE 7: 3,5 Jahre später 12 / 2009 Final

    Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7
  13. News rund um Java EE 7 Cloud Plattform wird auf

    Java EE 8 verschoben Social API wird vorerst gestoppt JCache wird doch nicht Bestandteil von Java EE 7
  14. JAX-WS 2.0 CDI 1.1 JMS 2.0 nach 11 Jahren JPA

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

    12 / 2012 Spring 3.2 Spring Seit 2009 12 / 2009 12 / 2011 End 2012 Voller Support Auf allen Servern sofort verfügbar
  16. Rechenbeispiel Java EE API Release 12 / 2009 0 Monate

    Server Mid 2011 18 Monate Interne Verfügbarkeit Mid 2013 18 + 24 Monate Ab API Release ist API in Produktion verfügbar in Ab API Release ist API in Produktion verfügbar in 42 Monate 3,5 Jahre
  17. Rechenbeispiel Spring 3.0 API Release 12 / 2009 0 Monate

    Interne Verfügbarkeit 3 / 2010 3 Monate Ab API Release ist API in Produktion verfügbar in Ab API Release ist API in Produktion verfügbar in 3 Monate
  18. Mit Spring habe ich eine zuverlässige und innovative Road-Map mit

    sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support
  19. Betrieb Road-Map Code Mit Spring binde ich mein Programmiermodell lose

    an die Runtime und gewinne somit viel Flexibiliät
  20. Road-Map Code Spring bietet neben den Basics zahlreiche stabile Helfer

    und höherwertige APIs rund um innovative Themen Betrieb
  21. Road-Map Mit Spring habe ich eine zuverlässige und innovative Road-Map

    mit sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support Betrieb Code
  22. Vielen Dank!!! Photos / Grafiken (c) Michael Plöd / Senacor

    Technologies AG Ausnahme: Photos auf Folien 2, 9 (c) Matthias Heyde; Photo auf Folie 34 lizensiert von istockphoto Pointy Font lizensiert von Bitfoundry Interesse das Gehörte in der Praxis umzusetzen? Senacor sucht laufend Entwickler und Architekten [email protected] http://www.senacor.com