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.co...
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
Vie...
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 O...
WebServices AMQP Roo
Security
OAuth
Data
JPA MongoDB Neo4j GemFire
HBase 

Redis JDBC Splunk Querydsl



HDFS MapReduce Hi...
Spring Data

als Beispiel
Data
JPA MongoDB Neo4j GemFire
HBase 

Redis JDBC Splunk Querydsl



HDFS MapReduce Hive

Pig Ca...
JPA 2 Query

...
public class PersonDAO ... {
private EntityManager em;
!
public List<Person> findByFirstname(String first...
JPA 2 Query

...
public class PersonDAO ... {
private EntityManager em;
!
public List<Person> findByFirstname(String first...
Spring Data

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
List<Kunde> findByFirstna...
Spring Data mit
QueryDSL

@Repository
public interface PersonRepository extends JpaRepository<Person, Long>,

QueryDslPred...
Spring Data adressiert
auch NoSQL, Big Data
and Data Grids

Data
JPA MongoDB Neo4j GemFire HBase 

Redis JDBC Splunk Query...
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
Vi...
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...
!
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...
News rund um
Java EE 7
Cloud Plattform wird auf
Java EE 8 verschoben
Social API wird vorerst
gestoppt
JCache wird doch nic...
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 E...
Rechenbeispiel
Java EE
API Release 12 / 2009 0 Monate
Server Mid 2011 18 Monate
Interne
Verfügbarkeit
Mid 2013 18 + 24 Mon...
Rechenbeispiel
Spring 4.0
API Release 12 / 2009 0 Monate
Interne
Verfügbarkeit
3 / 2010 3 Monate
Ab API Release ist API in...
Mit Spring habe ich eine
zuverlässige und
innovative Road-Map mit
sofortiger Verfügbarkeit
auf allen gängigen Servern
und ...
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
Betr...
Road-Map
Mit Spring habe ich eine
zuverlässige und innovative
Road-Map mit sofortiger
Verfügbarkeit auf allen
gängigen Ser...
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 ...
Nächste SlideShare
Wird geladen in …5
×

Warum empfehle ich meinen Kunden das Spring Framework?

2.628 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Technologie, Bildung
0 Kommentare
7 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.628
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
7
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Warum empfehle ich meinen Kunden das Spring Framework?

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

  37. 37. 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
  38. 38. 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
  39. 39. Spring Data
 als Beispiel Data JPA MongoDB Neo4j GemFire HBase 
 Redis JDBC Splunk Querydsl
 
 HDFS MapReduce Hive
 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(); } } Wir schreiben in der Regel viele kleine Queries wie diese
  42. 42. Spring Data
 @Repository public interface PersonRepository extends JpaRepository<Person, Long> { List<Kunde> findByFirstname(String firstname); }
  43. 43. 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));
  44. 44. 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
  45. 45. Wo bleiben die Java EE Antworten auf NoSQL, Mobile, Social, etc?
  46. 46. 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 !
  47. 47. Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen
  48. 48. Road-Maps
  49. 49. 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
  50. 50. ! Die Java EE Vendoren haben 1,5 Jahre
 für den ersten voll unterstützten Container benötigt
  51. 51. 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
  52. 52. 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
  53. 53. Was bleibt übrig?
  54. 54. JAX-WS 2.0 CDI 1.1JMS 2.0
 ! nach
 11 Jahren JPA 2.1Servlet 3.1 JSF 2.2 .... Java EE 7
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. Mit Spring habe ich eine zuverlässige und innovative Road-Map mit sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support
  59. 59. Betrieb Road-MapCode
  60. 60. Betrieb Road-MapCode Mit Spring binde ich mein Programmiermodell lose an die Runtime und gewinne somit viel Flexibiliät
  61. 61. Road-MapCode Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen Betrieb
  62. 62. 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
  63. 63. Deshalb empfehle ich meinen Kunden das Spring Framework !
  64. 64. 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!

×