JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
description
Transcript of JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
@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