jdd2014: spring 4, java ee 7 or both? - ivar grimstad
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
![Page 1: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/1.jpg)
@ivar_grimstadJDD 2014
Spring 4, Java EE 7 or Both?Ivar Grimstad
![Page 2: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/2.jpg)
@ivar_grimstadJDD 2014
![Page 3: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/3.jpg)
@ivar_grimstadJDD 2014
Contents
Spring 4 Java EE 7 Combining Spring 4 with Java EE 7
![Page 4: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/4.jpg)
@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
![Page 5: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/5.jpg)
@ivar_grimstadJDD 2014
Spring Framework 4
![Page 6: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/6.jpg)
@ivar_grimstadJDD 2014
![Page 7: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/7.jpg)
@ivar_grimstadJDD 2014
XML ?
![Page 8: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/8.jpg)
@ivar_grimstadJDD 2014
Annotations and JavaConfig to the Rescue
![Page 9: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/9.jpg)
@ivar_grimstadJDD 2014
New in Spring 4
![Page 10: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/10.jpg)
@ivar_grimstadJDD 2014
![Page 11: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/11.jpg)
@ivar_grimstadJDD 2014
Java 8 Support
![Page 12: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/12.jpg)
@ivar_grimstadJDD 2014
@Repeatable
@Fruit(1) @Fruit(2) class Bowl {} !
@Fruits({@Fruit(1), @Fruit(2)}) class Bowl {}
![Page 13: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/13.jpg)
@ivar_grimstadJDD 2014
Callback Interfaces
interface RowMapper<T> { T mapRow(ResultSet rs, int rowNum); }
![Page 14: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/14.jpg)
@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
![Page 15: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/15.jpg)
@ivar_grimstadJDD 2014
Groovy Bean Definition Language
![Page 16: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/16.jpg)
@ivar_grimstadJDD 2014
Core Container Improvements
@Autowired private Foo<Integer> i; !
@Autowired private Foo<String> s;
![Page 17: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/17.jpg)
@ivar_grimstadJDD 2014
Web Improvements
@Controller @ResponseBody public Response foo() {}
@RestController public Response foo() {}
![Page 18: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/18.jpg)
@ivar_grimstadJDD 2014
WebSockets
spring-websocket !
spring-messaging
![Page 19: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/19.jpg)
@ivar_grimstadJDD 2014
Java EE 7
![Page 20: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/20.jpg)
@ivar_grimstadJDD 2014
Overview
![Page 21: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/21.jpg)
@ivar_grimstadJDD 2014
Java EE 7 Focus Areas
![Page 22: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/22.jpg)
@ivar_grimstadJDD 2014
Developer Productivity
![Page 23: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/23.jpg)
@ivar_grimstadJDD 2014
Simplicity
@Stateless public class Foo {}
![Page 24: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/24.jpg)
@ivar_grimstadJDD 2014
HTML 5
![Page 25: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/25.jpg)
@ivar_grimstadJDD 2014
WebSockets
@ServerEndpoint public class Foo {} !
@ClientEndpoint public class FooClient {
![Page 26: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/26.jpg)
@ivar_grimstadJDD 2014
Meeting Enterprise Demands
![Page 27: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/27.jpg)
@ivar_grimstadJDD 2014
JMS 2.0@Stateless public class Foo { !
@Inject private JMSContext context; !
@Resource(lookup=“jms/MyQueue”) private Queue queue; }
![Page 28: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/28.jpg)
@ivar_grimstadJDD 2014
Compatibility
![Page 29: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/29.jpg)
@ivar_grimstadJDD 2014
Mixing Spring 4 with Java EE 7
![Page 30: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/30.jpg)
@ivar_grimstadJDD 2014
Java EE 7 vs Spring 4
![Page 31: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/31.jpg)
@ivar_grimstadJDD 2014
Spring 4 vs Java EE 7
![Page 32: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/32.jpg)
@ivar_grimstadJDD 2014
Java EE 7Container
Java EE 7 Application (WAR)
bean
bean
@Inject
![Page 33: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/33.jpg)
@ivar_grimstadJDD 2014
Spring 4Container
Spring 4 Application (WAR)
Spring 4 Context
bean
bean
@Autowired
![Page 34: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/34.jpg)
@ivar_grimstadJDD 2014
So What about Mixing Spring and Java EE?
![Page 35: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/35.jpg)
@ivar_grimstadJDD 2014
Java EE 7 -> Spring 4Container
Java EE 7 Application (WAR)
bean
Spring 4 Context
bean
bean bean
@Inject
@Inject @Autowired
![Page 36: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/36.jpg)
@ivar_grimstadJDD 2014
Spring 4 -> Java EE 7Container
Spring 4 Application (WAR)
bean
Spring 4 Context
bean
beanbean
@Autowired
@Inject@Autowired
![Page 37: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/37.jpg)
@ivar_grimstadJDD 2014
DEMO !
![Page 38: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/38.jpg)
@ivar_grimstadJDD 2014
Integrate a Spring 4 Componentin
Java EE 7 Application
![Page 39: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/39.jpg)
@ivar_grimstadJDD 2014
Java EE 7 -> Spring 4Container
Java EE 7 Application (WAR)
resource
simple
@Inject
Spring 4 Context
awsome
simple
@Autowired
@Inject
![Page 40: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/40.jpg)
@ivar_grimstadJDD 2014
Java EE 7 -> Spring 4Container
Java EE 7 Application (WAR)
resource awsome
simple
Spring 4 Context
@Autowired@Inject
@Inject
![Page 41: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/41.jpg)
@ivar_grimstadJDD 2014
Java EE 7 -> Spring 4Container
Java EE 7 Application (WAR)
resource awsome
simple simple
@Inject
@Inject @AutowiredX
![Page 42: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/42.jpg)
@ivar_grimstadJDD 2014
Integrate a Java EE 7 Componentin
Spring 4 Application
![Page 43: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/43.jpg)
@ivar_grimstadJDD 2014
Spring 4 -> Java EE 7Container
Spring 4 Application (WAR)
awsome
simple
@Inject
Spring 4 Context
resource
simple
@Autowired
@EJB
![Page 44: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/44.jpg)
@ivar_grimstadJDD 2014
Spring 4 -> Java EE 7Container
Spring 4 Application (WAR)
awsome
simple
@Inject
resource
Spring 4 Context
@Autowired
@EJB
![Page 45: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/45.jpg)
@ivar_grimstadJDD 2014
Spring 4 -> Java EE 7Container
Spring 4 Application (WAR)
awsomeresource
Spring 4 Context
@EJB
@Injectsimple
@Autowired
@Autowired
![Page 46: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/46.jpg)
@ivar_grimstadJDD 2014
Summary
![Page 47: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/47.jpg)
@ivar_grimstadJDD 2014
Spring 4 and Java EE 7solves the same problem
![Page 48: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/48.jpg)
@ivar_grimstadJDD 2014
Java EE 7 require less configuration and
dependencies
![Page 49: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/49.jpg)
@ivar_grimstadJDD 2014
Spring 4 is more portable
![Page 50: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/50.jpg)
@ivar_grimstadJDD 2014
Using Spring 4 from Java EE is easier
![Page 51: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/51.jpg)
@ivar_grimstadJDD 2014
Mixing is possible
![Page 52: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/52.jpg)
@ivar_grimstadJDD 2014
…but…
![Page 53: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/53.jpg)
@ivar_grimstadJDD 2014
Favor one framework over mixing
![Page 54: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/54.jpg)
@ivar_grimstadJDD 2014
Sources
https://github.com/ivargrimstad/spring-javaee
![Page 55: JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad](https://reader033.vdocuments.site/reader033/viewer/2022051112/55933a761a28ab072d8b4660/html5/thumbnails/55.jpg)
@ivar_grimstadJDD 2014
cybercom.com