SlideShare ist ein Scribd-Unternehmen logo
1 von 60
?
    Why do I recommend
    the
    Spring Framework
    to my customers
Michael Plöd
Partner and Principal Architect at Senacor
Technologies AG

Author Java Magazin

@bitboss

http://speakerdeck.com/mploed
100%
independent
2005
   Java EE Developer




Spring Developer
2012
   Java EE Developer




Spring Developer
Java EE
   vs
 Spring
Java EE

!    with or
     without
     Spring
You‘ll get your projects
delivered with both stacks
I will discuss the topic
  on an architectural
 decision-maker level
Myths
  and
Legends
Spring
  is an
XML Hell
0   lines of XML for a
    Spring based
    Web Application
Spring
   is
complex
You don‘t need the
force to use Spring!
Spring
 has too many
 dependencies
   and makes
WAR Files huge
Is this your
runtime
environment?
Spring is
proprietary
 and not
 portable
Who has ported a
  usual JEE
  enterprise
application as a
   drop-in?
A
   holistic
examination
is important
Ops   Code   Road-Map
Operational
 Aspects
Infrastructure
Infrastructure

App Server

 Servlet
Container



             Operations Team
Update Volume
                          Libraries like
              Server
App Server    Runtime     CDI, Servlet,
                          JPA, JSF, ...      A lot of
                                            planning
                                           and testing
 Servlet                                   is required
Container    Eventually
                           Integration
                          in Monitoring
               JVM
                               ...
Project Libs
Project Libs

Spring

 Hibernate

         ...




               Development Team
Update Volume

Spring                        Ad Hoc
               Dedicated,
               only single
 Hibernate                   Reduced
                Libraries
                             test effort
         ...
Roundtrips

 Spring
                         App Server
  Hibernate                   Servlet
          ...                Container



2-4 Months                   2-3 Years
DEV   OPS
DEV        OPS




      ?
      vs
With Spring I achieve an
increased flexibility by
  loosely coupling the
   infrastructure to the
          runtime
Coding
?
          Are
     Dependency
       Injection
          and
        Testing
    game changers
Free your mind:
   we are in


  2012
  and not in

  2005
   anymore
Dependency
  Injection
     and
   Testing
     are
 commodity
More important is the
 overall ecosystem
Spring builds upon
       Java EE

DI AOP   TX   JMS    AOP      JDBC     ORM      OXM   Expression
Scheduling   MVC    REST      JMX    Testing    Caching   Profiles




           JTA      JSR-250     JSR-330        JDBC 4.1
         JSF 2.0    JPA 2.0     JSR-303         JMX 1.0
Data
                                    Batch
JPA MongoDB Neo4j GemFire                                    Social
           HBase
                                  Integration                Twitter
 Redis JDBC Splunk Querydsl
                                                            LinkedIn
                                                            Facebook
  HDFS MapReduce Hive
                                   Mobile
  Pig Cascading SI/Batch



                                                                      Security
 WebFlow       WebServices          AMQP              Roo
                                                                       OAuth




DI AOP       TX    JMS      AOP      JDBC       ORM    OXM     Expression
Scheduling        MVC      REST    JMX      Testing    Caching        Profiles
Data
JPA MongoDB Neo4j GemFire
           HBase
 Redis JDBC Splunk Querydsl
                              Spring Data
  HDFS MapReduce Hive
                                by example
  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();
    }
}




    You end up writing many simple queries
Spring Data
@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
    List<Kunde> findByFirstname(String firstname);
}
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));
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
Where are the
Java EE
Answers
to NoSQL, Mobile,
    Social, ...?
Keep in mind

             Server
App Server   Runtime
                         Libraries like     A lot of
                                           planning
                         CDI, Servlet,    and testing
 Servlet                 JPA, JSF, ...    is required
Container    Eventuell
               JVM




  ! Ususal Roundtrip is 2-3 years !
Spring offers a consistent
programming model and
many helpful abstractions
 and utilities besides the
           basics
Road-Maps
Java EE 6
12 / 2009          12 / 2010    Mid 2011     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
!
    The Java EE venors took

      1,5 years
         for the first fully
    professionally supported
             container
Java EE 7:
3,5 years later

    12 / 2009   Final Spec Release JEE 6




    Q2 / 2013   Final Spec Release JEE 7
News around
              Java EE 7
                            JC a c
                                  he w
                     l be              on‘t
                 wil               Java make
              orm EE 8
          attf va                       EE 7 it in
       Pl
Cl oud d to Ja
 del aye


                  Social API is on a halt
What is left?
Servlet 3.1          JSF 2.2             JPA 2.1

JAX-WS 2.0




              Java EE 7
                         JMS 2.0              CDI 1.1

                           after
       ....              11 years
Spring since
                2009
12 / 2009                   12 / 2011       End 2012




 12 / 2009     Spring 3.0       Full professional
                                     support
 12 / 2011     Spring 3.1
                                 Available on all
                                 containers right
 12 / 2012     Spring 3.2             away
Some math
        Java EE
API Release       12 / 2009        0 months


   Server         Mid 2011         18 months

 Available in
                  Mid 2013       18 + 24 months
organisations

                                   42 months
API is available in production
                                    3,5 years
The same math
    Spring 3.0
API Release       12 / 2009      0 months


 Available in
                   3 / 2010      3 months
organisations


API is available in production   3 months
Spring offers an
innovative and reliable
      Road-Map
         with
immediate availability
         and
       support
Ops   Code   Road-Map
Thank you!
          Senacor is hiring
Software Developers and -Architects

                 michael.ploed@senacor.com
                           @bitboss
                   http://www.senacor.com

                    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

Weitere ähnliche Inhalte

Mehr von Michael Plöd

CQRS basierte Architekturen mit Microservices
CQRS basierte Architekturen mit MicroservicesCQRS basierte Architekturen mit Microservices
CQRS basierte Architekturen mit MicroservicesMichael Plöd
 
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESSpring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESMichael Plöd
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesMichael Plöd
 
Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework? Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework? Michael Plöd
 
Bessere Präsentationen
Bessere PräsentationenBessere Präsentationen
Bessere PräsentationenMichael Plöd
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Michael Plöd
 

Mehr von Michael Plöd (7)

CQRS basierte Architekturen mit Microservices
CQRS basierte Architekturen mit MicroservicesCQRS basierte Architekturen mit Microservices
CQRS basierte Architekturen mit Microservices
 
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESSpring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best Practices
 
Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework? Warum empfehle ich meinen Kunden das Spring Framework?
Warum empfehle ich meinen Kunden das Spring Framework?
 
Hibernate Tuning
Hibernate TuningHibernate Tuning
Hibernate Tuning
 
Bessere Präsentationen
Bessere PräsentationenBessere Präsentationen
Bessere Präsentationen
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
 

Kürzlich hochgeladen

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Why do I recommend the Spring Framework to my customers

  • 1. ? Why do I recommend the Spring Framework to my customers
  • 2. Michael Plöd Partner and Principal Architect at Senacor Technologies AG Author Java Magazin @bitboss http://speakerdeck.com/mploed
  • 4. 2005 Java EE Developer Spring Developer
  • 5. 2012 Java EE Developer Spring Developer
  • 6. Java EE vs Spring
  • 7. Java EE ! with or without Spring
  • 8. You‘ll get your projects delivered with both stacks
  • 9. I will discuss the topic on an architectural decision-maker level
  • 11. Spring is an XML Hell
  • 12. 0 lines of XML for a Spring based Web Application
  • 13. Spring is complex
  • 14. You don‘t need the force to use Spring!
  • 15. Spring has too many dependencies and makes WAR Files huge
  • 18. Who has ported a usual JEE enterprise application as a drop-in?
  • 19. A holistic examination is important
  • 20. Ops Code Road-Map
  • 24. Update Volume Libraries like Server App Server Runtime CDI, Servlet, JPA, JSF, ... A lot of planning and testing Servlet is required Container Eventually Integration in Monitoring JVM ...
  • 26. Project Libs Spring Hibernate ... Development Team
  • 27. Update Volume Spring Ad Hoc Dedicated, only single Hibernate Reduced Libraries test effort ...
  • 28. Roundtrips Spring App Server Hibernate Servlet ... Container 2-4 Months 2-3 Years
  • 29. DEV OPS
  • 30. DEV OPS ? vs
  • 31. With Spring I achieve an increased flexibility by loosely coupling the infrastructure to the runtime
  • 33. ? Are Dependency Injection and Testing game changers
  • 34. Free your mind: we are in 2012 and not in 2005 anymore
  • 35. Dependency Injection and Testing are commodity
  • 36. More important is the overall ecosystem
  • 37. Spring builds upon Java EE DI AOP TX JMS AOP JDBC ORM OXM Expression Scheduling MVC REST JMX Testing Caching Profiles JTA JSR-250 JSR-330 JDBC 4.1 JSF 2.0 JPA 2.0 JSR-303 JMX 1.0
  • 38. Data Batch JPA MongoDB Neo4j GemFire Social HBase Integration Twitter Redis JDBC Splunk Querydsl LinkedIn Facebook HDFS MapReduce Hive Mobile Pig Cascading SI/Batch Security WebFlow WebServices AMQP Roo OAuth DI AOP TX JMS AOP JDBC ORM OXM Expression Scheduling MVC REST JMX Testing Caching Profiles
  • 39. Data JPA MongoDB Neo4j GemFire HBase Redis JDBC Splunk Querydsl Spring Data HDFS MapReduce Hive by example Pig Cascading SI/Batch
  • 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(); } } You end up writing many simple queries
  • 42. Spring Data @Repository public interface PersonRepository extends JpaRepository<Person, Long> { List<Kunde> findByFirstname(String firstname); }
  • 43. 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));
  • 44. 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
  • 45. Where are the Java EE Answers to NoSQL, Mobile, Social, ...?
  • 46. Keep in mind Server App Server Runtime Libraries like A lot of planning CDI, Servlet, and testing Servlet JPA, JSF, ... is required Container Eventuell JVM ! Ususal Roundtrip is 2-3 years !
  • 47. Spring offers a consistent programming model and many helpful abstractions and utilities besides the basics
  • 49. Java EE 6 12 / 2009 12 / 2010 Mid 2011 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
  • 50. ! The Java EE venors took 1,5 years for the first fully professionally supported container
  • 51. Java EE 7: 3,5 years later 12 / 2009 Final Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7
  • 52. News around Java EE 7 JC a c he w l be on‘t wil Java make orm EE 8 attf va EE 7 it in Pl Cl oud d to Ja del aye Social API is on a halt
  • 54. Servlet 3.1 JSF 2.2 JPA 2.1 JAX-WS 2.0 Java EE 7 JMS 2.0 CDI 1.1 after .... 11 years
  • 55. Spring since 2009 12 / 2009 12 / 2011 End 2012 12 / 2009 Spring 3.0 Full professional support 12 / 2011 Spring 3.1 Available on all containers right 12 / 2012 Spring 3.2 away
  • 56. Some math Java EE API Release 12 / 2009 0 months Server Mid 2011 18 months Available in Mid 2013 18 + 24 months organisations 42 months API is available in production 3,5 years
  • 57. The same math Spring 3.0 API Release 12 / 2009 0 months Available in 3 / 2010 3 months organisations API is available in production 3 months
  • 58. Spring offers an innovative and reliable Road-Map with immediate availability and support
  • 59. Ops Code Road-Map
  • 60. Thank you! Senacor is hiring Software Developers and -Architects michael.ploed@senacor.com @bitboss http://www.senacor.com 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