jdd2014: spring 4, java ee 7 or both? - ivar grimstad

Post on 01-Jul-2015

564 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Problems choosing between Java EE and Spring? Or do you want to use both in combination? Then this session is something for you. In this session I will go through the similarities and differences between Spring 4 and Java EE 7. I will go through what you need to consider to configure and combine the two approaches. In the demo part of the presentation I will show how to integrate existing Spring 4 components into a Java EE 7 application. And as if that is not enough, I will also do it the other way around, that is to integrate existing Java EE 7 components into a Spring 4 application. Strengths and weaknesses with the approaches will then be explored and lessons learned summarized.

TRANSCRIPT

@ivar_grimstadJDD 2014

Spring 4, Java EE 7 or Both?Ivar Grimstad

@ivar_grimstadJDD 2014

@ivar_grimstadJDD 2014

Contents

Spring 4 Java EE 7 Combining Spring 4 with Java EE 7

@ivar_grimstadJDD 2014

Timeline

1998 2014

JPE J2EE 1.2 J2EE 1.3 J2EE 1.4 Java EE 5 Java EE 6 Java EE 7

Spring Spring 1 Spring 2 Spring 3 Spring 4

@ivar_grimstadJDD 2014

Spring Framework 4

@ivar_grimstadJDD 2014

@ivar_grimstadJDD 2014

XML ?

@ivar_grimstadJDD 2014

Annotations and JavaConfig to the Rescue

@ivar_grimstadJDD 2014

New in Spring 4

@ivar_grimstadJDD 2014

@ivar_grimstadJDD 2014

Java 8 Support

@ivar_grimstadJDD 2014

@Repeatable

@Fruit(1) @Fruit(2) class Bowl {} !

@Fruits({@Fruit(1), @Fruit(2)}) class Bowl {}

@ivar_grimstadJDD 2014

Callback Interfaces

interface RowMapper<T> { T mapRow(ResultSet rs, int rowNum); }

@ivar_grimstadJDD 2014

Java EE 7 Support

JMS 2.0

Concurrency Utilities

JTA 1.2 JPA 2.1

Bean!Validation 1.1

Java EE 6 Support

@ivar_grimstadJDD 2014

Groovy Bean Definition Language

@ivar_grimstadJDD 2014

Core Container Improvements

@Autowired private Foo<Integer> i; !

@Autowired private Foo<String> s;

@ivar_grimstadJDD 2014

Web Improvements

@Controller @ResponseBody public Response foo() {}

@RestController public Response foo() {}

@ivar_grimstadJDD 2014

WebSockets

spring-websocket !

spring-messaging

@ivar_grimstadJDD 2014

Java EE 7

@ivar_grimstadJDD 2014

Overview

@ivar_grimstadJDD 2014

Java EE 7 Focus Areas

@ivar_grimstadJDD 2014

Developer Productivity

@ivar_grimstadJDD 2014

Simplicity

@Stateless public class Foo {}

@ivar_grimstadJDD 2014

HTML 5

@ivar_grimstadJDD 2014

WebSockets

@ServerEndpoint public class Foo {} !

@ClientEndpoint public class FooClient {

@ivar_grimstadJDD 2014

Meeting Enterprise Demands

@ivar_grimstadJDD 2014

JMS 2.0@Stateless public class Foo { !

@Inject private JMSContext context; !

@Resource(lookup=“jms/MyQueue”) private Queue queue; }

@ivar_grimstadJDD 2014

Compatibility

@ivar_grimstadJDD 2014

Mixing Spring 4 with Java EE 7

@ivar_grimstadJDD 2014

Java EE 7 vs Spring 4

@ivar_grimstadJDD 2014

Spring 4 vs Java EE 7

@ivar_grimstadJDD 2014

Java EE 7Container

Java EE 7 Application (WAR)

bean

bean

@Inject

@ivar_grimstadJDD 2014

Spring 4Container

Spring 4 Application (WAR)

Spring 4 Context

bean

bean

@Autowired

@ivar_grimstadJDD 2014

So What about Mixing Spring and Java EE?

@ivar_grimstadJDD 2014

Java EE 7 -> Spring 4Container

Java EE 7 Application (WAR)

bean

Spring 4 Context

bean

bean bean

@Inject

@Inject @Autowired

@ivar_grimstadJDD 2014

Spring 4 -> Java EE 7Container

Spring 4 Application (WAR)

bean

Spring 4 Context

bean

beanbean

@Autowired

@Inject@Autowired

@ivar_grimstadJDD 2014

DEMO !

@ivar_grimstadJDD 2014

Integrate a Spring 4 Componentin

Java EE 7 Application

@ivar_grimstadJDD 2014

Java EE 7 -> Spring 4Container

Java EE 7 Application (WAR)

resource

simple

@Inject

Spring 4 Context

awsome

simple

@Autowired

@Inject

@ivar_grimstadJDD 2014

Java EE 7 -> Spring 4Container

Java EE 7 Application (WAR)

resource awsome

simple

Spring 4 Context

@Autowired@Inject

@Inject

@ivar_grimstadJDD 2014

Java EE 7 -> Spring 4Container

Java EE 7 Application (WAR)

resource awsome

simple simple

@Inject

@Inject @AutowiredX

@ivar_grimstadJDD 2014

Integrate a Java EE 7 Componentin

Spring 4 Application

@ivar_grimstadJDD 2014

Spring 4 -> Java EE 7Container

Spring 4 Application (WAR)

awsome

simple

@Inject

Spring 4 Context

resource

simple

@Autowired

@EJB

@ivar_grimstadJDD 2014

Spring 4 -> Java EE 7Container

Spring 4 Application (WAR)

awsome

simple

@Inject

resource

Spring 4 Context

@Autowired

@EJB

@ivar_grimstadJDD 2014

Spring 4 -> Java EE 7Container

Spring 4 Application (WAR)

awsomeresource

Spring 4 Context

@EJB

@Injectsimple

@Autowired

@Autowired

@ivar_grimstadJDD 2014

Summary

@ivar_grimstadJDD 2014

Spring 4 and Java EE 7solves the same problem

@ivar_grimstadJDD 2014

Java EE 7 require less configuration and

dependencies

@ivar_grimstadJDD 2014

Spring 4 is more portable

@ivar_grimstadJDD 2014

Using Spring 4 from Java EE is easier

@ivar_grimstadJDD 2014

Mixing is possible

@ivar_grimstadJDD 2014

…but…

@ivar_grimstadJDD 2014

Favor one framework over mixing

@ivar_grimstadJDD 2014

Sources

https://github.com/ivargrimstad/spring-javaee

@ivar_grimstadJDD 2014

cybercom.com

top related