• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Warum empfehle ich meinen Kunden das Spring Framework?
 

Warum empfehle ich meinen Kunden das Spring Framework?

on

  • 1,596 views

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 der Session möchte ich - ...

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 der Session möchte ich - abseits jeglicher Polemik - in einer ganzheitlichen Betrachtung schildern, warum ich meinen Kunden noch immer zum Einsatz von Spring rate.

Statistics

Views

Total Views
1,596
Views on SlideShare
1,594
Embed Views
2

Actions

Likes
4
Downloads
0
Comments
0

1 Embed 2

https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Warum empfehle ich meinen Kunden das Spring Framework? Warum empfehle ich meinen Kunden das Spring Framework? Presentation Transcript

    • Warum empfehle ich meinen Kunden das Spring Framework ?
    • Michael Plöd Partner und Principal Architect bei Senacor Technologies AG Autor Java Magazin @bitboss http://speakerdeck.com/mploed
    • 100% unabhängig
    • 2005 Java EE Entwickler Spring Entwickler
    • 2014 Java EE Entwickler Spring Entwickler
    • Java EE
 vs
 Spring
    • Java EE
 mit oder ohne
 Spring !
    • Mit beiden Wegen wird man sein Projekt liefern
    • App Server
    • Die Argumentation findet auf architektureller Entscheider Ebene statt
    • Sagen und Mythen
    • Spring ist eine XML Hölle
    • 0Zeilen XML für eine Spring Web- Anwendung
    • Spring ist komplex
    • Man muss kein Jedi Developer sein
    • Spring hat zu viele Dependencies
    • Ist das Ihre Zielplattform?
    • Spring ist Proprietär und nicht portabel
    • Wer hat schon eine nicht-triviale JEE Anwendung als drop-in portiert?
    • Wichtig ist eine ganzheitliche Betrachtung
    • Betrieb Road-MapCode
    • Betriebliche
 Aspekte
    • Infrastruktur
    • Infrastruktur App Server ! Servlet Container Operations Team
    • 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
    • Projekt Libs
    • Projekt Libs Hibernate ... Spring Development Team
    • Update Umfang Hibernate ... Spring Dediziert Einzelne Libraries Ad Hoc ! Wenig Test
    • Roundtrips Hibernate ... Spring App Server ! Servlet Container 2-4 Monate 2-3 Jahre
    • DEV OPS vs ?
    • Mit Spring binde ich mein Programmiermodell lose an die Runtime und gewinne somit viel Flexibiliät
    • Coding
    • ? Sind
 Dependency Injection und Testing entscheidend
    • Bitte nachdenken: wir sind im Jahr
 2014 und nicht in 2005
    • Dependency Injection und Testing sind Commodity
    • Entscheidend ist das gesamte Ökosystem

    • 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-330JTA JDBC 4.1 JPA 2.0JSF 2.0 JSR-303 JMX 1.0
    • 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
    • Spring Data
 als Beispiel Data JPA MongoDB Neo4j GemFire HBase 
 Redis JDBC Splunk Querydsl
 
 HDFS MapReduce Hive
 Pig Cascading SI/Batch
    • 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(); } }
    • 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
    • Spring Data
 @Repository public interface PersonRepository extends JpaRepository<Person, Long> { List<Kunde> findByFirstname(String firstname); }
    • 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));
    • 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
    • Wo bleiben die Java EE Antworten auf NoSQL, Mobile, Social, etc?
    • 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 !
    • Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen
    • Road-Maps
    • Java EE 6 12 / 2009 Mid 201112 / 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
    • ! Die Java EE Vendoren haben 1,5 Jahre
 für den ersten voll unterstützten Container benötigt
    • Java EE 7: 3,5 Jahre später 12 / 2009 Final Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7 ??? Erster Container mit Support
    • 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
    • Was bleibt übrig?
    • JAX-WS 2.0 CDI 1.1JMS 2.0
 ! nach
 11 Jahren JPA 2.1Servlet 3.1 JSF 2.2 .... Java EE 7
    • 12 / 2009 Spring 3.0 12 / 2011 Spring 3.1 12 / 2012 Spring 3.2 12 / 2013 Spring 4.0 Spring Seit 2009 12 / 2009 12 / 2011 End 2013 Voller Support ! Auf allen Servern sofort verfügbar 12 / 2012
    • 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 42 Monate
 3,5 Jahre
    • Rechenbeispiel Spring 4.0 API Release 12 / 2009 0 Monate Interne Verfügbarkeit 3 / 2010 3 Monate Ab API Release ist API in Produktion verfügbar in 3 Monate
    • Mit Spring habe ich eine zuverlässige und innovative Road-Map mit sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support
    • Betrieb Road-MapCode
    • Betrieb Road-MapCode Mit Spring binde ich mein Programmiermodell lose an die Runtime und gewinne somit viel Flexibiliät
    • Road-MapCode Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen Betrieb
    • 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
    • Deshalb empfehle ich meinen Kunden das Spring Framework !
    • 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 Morgen 08:30 Uhr Gutenbergsaal 4 Caching Best Practices! michael.ploed@senacor.com http://www.senacor.com!