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.
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. 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
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. 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
50. !
Die Java EE Vendoren
haben
1,5 Jahre
für den ersten voll
unterstützten Container
benötigt
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. 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
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. 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. 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. 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. Mit Spring habe ich eine
zuverlässige und
innovative Road-Map mit
sofortiger Verfügbarkeit
auf allen gängigen Servern
und vollem Support
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
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!