+ All Categories
Home > Documents > From the Spring Framework to Java EE 7

From the Spring Framework to Java EE 7

Date post: 06-Jan-2017
Category:
Upload: dinhtram
View: 231 times
Download: 0 times
Share this document with a friend
54
JDD 2013 @ivar_grimstad From the Spring Framework to Java EE 7 Ivar Grimstad
Transcript
Page 1: From the Spring Framework to Java EE 7

JDD 2013 @ivar_grimstad

From the Spring Framework to Java EE 7Ivar Grimstad

Page 2: From the Spring Framework to Java EE 7

Ivar GrimstadSoftware Architect at Cybercom Sweden

About the Speaker

JDD 2013 @ivar_grimstad

Page 3: From the Spring Framework to Java EE 7

“ […] is so much better than […]!”

What this presentation is NOT about

JDD 2013 @ivar_grimstad

Page 4: From the Spring Framework to Java EE 7

“[…] rocks and […] sucks!”

What this presentation is NOT about

JDD 2013 @ivar_grimstad

Page 5: From the Spring Framework to Java EE 7

• Feature comparison

• Migration from Spring Framework to Java EE

What this presentation IS about

JDD 2013 @ivar_grimstad

Page 6: From the Spring Framework to Java EE 7

• Background

• Comparison of Spring Framework and Java EE

• Convert Demo application to Java EE

–Highlight differences and similarities

• Lessons learned

Content

JDD 2013 @ivar_grimstad

Page 7: From the Spring Framework to Java EE 7

1998

• JPE

1999

• J2EE 1.2

2001

• J2EE 1.3

2002

•Spring

2003

• J2EE 1.4

2004

•Spring 1

2006

• Java EE 5

•Spring 2

2009

• Java EE 6

•Spring 3

2013

• Java EE 7

•Spring 4

History

JDD 2013 @ivar_grimstad

Page 8: From the Spring Framework to Java EE 7

• Flexible

• Lightweight

• Modular

• Extensible

Spring Framework

JDD 2013 @ivar_grimstad

Page 9: From the Spring Framework to Java EE 7

Java EE 7

JDD 2013 @ivar_grimstad

Page 10: From the Spring Framework to Java EE 7

Comparison of Selected Features

JDD 2013 @ivar_grimstad

Feature Spring 3.2.x Java EE 7

Dependency Injection Spring IoC CDI

Web Framework Spring MVC JSF

REST Spring MVC JAX-RS

Transactions Annotations, AOP EJB, JTA

Persistence JDBC Templates, Spring Data JPA

Batch Spring Batch Batch Applications for Java Platform 1.0

WebSockets - Java API for WebSockets 1.0

Validation Spring Validation API Bean Validation API

Security Spring Security Java EE Security

Messaging JMS JMS

Page 11: From the Spring Framework to Java EE 7

Comparison of Selected Features

JDD 2013 @ivar_grimstad

Feature Spring 3.2.x Java EE 7

Dependency Injection Spring IoC CDI

Web Framework Spring MVC JSF

REST Spring MVC JAX-RS

Transactions Annotations, AOP EJB, JTA

Persistence JDBC Templates, Spring Data JPA

Batch Spring Batch Batch Applications for Java Platform 1.0

WebSockets - Java API for WebSockets 1.0

Validation Spring Validation API Bean Validation API

Security Spring Security Java EE Security

Messaging JMS JMS

Page 12: From the Spring Framework to Java EE 7

Demo

JDD 2013 @ivar_grimstad

Page 13: From the Spring Framework to Java EE 7

• Online Cook Book

–Web UI

–REST API

Demo Application

JDD 2013 @ivar_grimstad

Page 14: From the Spring Framework to Java EE 7

Demo Application Data Model

JDD 2013 @ivar_grimstad

Page 15: From the Spring Framework to Java EE 7

Demo Application Architecture

JDD 2013 @ivar_grimstad

Page 16: From the Spring Framework to Java EE 7

Spring Implementation

JDD 2013 @ivar_grimstad

Page 17: From the Spring Framework to Java EE 7

• WEB Application

• Based on Spring Framework

• Mix of XML and Annotations

Demo Application Characteristics

JDD 2013 @ivar_grimstad

Page 18: From the Spring Framework to Java EE 7

1. Add Java EE dependency

2. Layer for layer

1. Add layer specific Java EE configuration

(web.xml, persistense.xml, faces-config.xml)

2. Add Java EE annotations

3. Replace Spring specific implementation with Java EE

4. Replace Spring injections with CDI

3. Remove Spring configuration

4. Remove Spring Dependencies

Migration Steps

JDD 2013 @ivar_grimstad

Page 19: From the Spring Framework to Java EE 7

Layer for Layer Walkthrough

JDD 2013 @ivar_grimstad

Page 20: From the Spring Framework to Java EE 7

Preparations

JDD 2013 @ivar_grimstad

Page 21: From the Spring Framework to Java EE 7

Dependency Injection

JDD 2013 @ivar_grimstad

Spring IoC CDI

@Autowired

XML

@Inject

Page 22: From the Spring Framework to Java EE 7

Persistence Layer

JDD 2013 @ivar_grimstad

Page 23: From the Spring Framework to Java EE 7

Persistence Layer

JDD 2013 @ivar_grimstad

Spring JDBC JPA

@Repository

JdbcTemplate

@PersistenceContext

@Entity

@OneToMany,

@ManyToOne,

@ManyToMany

persistence.xml

Page 24: From the Spring Framework to Java EE 7

Spring JDBC

JDD 2013 @ivar_grimstad

Page 25: From the Spring Framework to Java EE 7

JPA

JDD 2013 @ivar_grimstad

Page 26: From the Spring Framework to Java EE 7

Service Layer

JDD 2013 @ivar_grimstad

Page 27: From the Spring Framework to Java EE 7

Service Layer

JDD 2013 @ivar_grimstad

Spring POJO EJB

@Service

@Transactional

@Local

@Stateless

Page 28: From the Spring Framework to Java EE 7

Spring

JDD 2013 @ivar_grimstad

Page 29: From the Spring Framework to Java EE 7

EJB

JDD 2013 @ivar_grimstad

Page 30: From the Spring Framework to Java EE 7

REST API

JDD 2013 @ivar_grimstad

Page 31: From the Spring Framework to Java EE 7

REST API

JDD 2013 @ivar_grimstad

Spring MVC JAX-RS

@Controller

@RequestMapping

@ResponseBody

@RequestBody

@PathVariable

@RequestParam

@Path

@GET, @POST,

@PUT, @DELETE

@Consumes,

@Produces

@PathParam

@QueryParam

Page 32: From the Spring Framework to Java EE 7

Spring MVC

JDD 2013 @ivar_grimstad

Page 33: From the Spring Framework to Java EE 7

JAX-RS

JDD 2013 @ivar_grimstad

Page 34: From the Spring Framework to Java EE 7

Web UI

JDD 2013 @ivar_grimstad

Page 35: From the Spring Framework to Java EE 7

Web UI

JDD 2013 @ivar_grimstad

Spring MVC Java ServerFaces

JSP XHTML

@Controller

@RequestMapping

@Named

Page 36: From the Spring Framework to Java EE 7

Spring MVC Controller

JDD 2013 @ivar_grimstad

Page 37: From the Spring Framework to Java EE 7

JSF Controller

JDD 2013 @ivar_grimstad

Page 38: From the Spring Framework to Java EE 7

Spring resources (i18n)

JDD 2013 @ivar_grimstad

applicatonContext.xml

Create.jsp

Page 39: From the Spring Framework to Java EE 7

JSF resources (i18n)

JDD 2013 @ivar_grimstad

faces-config.xml

Create.xhtml

Page 40: From the Spring Framework to Java EE 7

Remove Spring

JDD 2013 @ivar_grimstad

Page 41: From the Spring Framework to Java EE 7

Application Architecture - Spring

JDD 2013 @ivar_grimstad

Page 42: From the Spring Framework to Java EE 7

Application Architecture – Java EE

JDD 2013 @ivar_grimstad

Page 43: From the Spring Framework to Java EE 7

1. Added Java EE dependency

2. Layer for layer

1. Added layer specific Java EE configuration

(web.xml, persistense.xml, faces-config.xml)

2. Added Java EE annotations

3. Replaced Spring specific implementation with Java EE

4. Replaced Spring injections with CDI

3. Removed Spring configuration

4. Removed Spring Dependencies

Migration Steps – what we did

JDD 2013 @ivar_grimstad

Page 44: From the Spring Framework to Java EE 7

Dependencies (Spring)

JDD 2013 @ivar_grimstad

Page 45: From the Spring Framework to Java EE 7

Dependencies (Java EE)

JDD 2013 @ivar_grimstad

Page 46: From the Spring Framework to Java EE 7

WAR File (Spring)

JDD 2013 @ivar_grimstad

Page 47: From the Spring Framework to Java EE 7

WAR File (Java EE)

JDD 2013 @ivar_grimstad

Page 48: From the Spring Framework to Java EE 7

• Spring Framework has excellent support for testing

• No direct support for testing in Java EE 7

• Tools like Arquillian is an option

What about testing?

JDD 2013 @ivar_grimstad

Page 49: From the Spring Framework to Java EE 7

• Simplified JMS

• Java API for WebSocket 1.0

• JSON Processing 1.0

• Batch Applications for Java Platform 1.0

Not Covered Here

JDD 2013 @ivar_grimstad

Page 50: From the Spring Framework to Java EE 7

• Spring IS a proprietary framework

• Java EE is a standard

• Many Spring applications run in a Java EE container anyway

Why Migrate?

JDD 2013 @ivar_grimstad

Page 51: From the Spring Framework to Java EE 7

• If your target platform is prior to Java EE 6

• If your developers are experts on Spring Framework

• If your application is heavily based on AOP

When NOT to Migrate?

JDD 2013 @ivar_grimstad

Page 52: From the Spring Framework to Java EE 7

• Migration is not that hard

• How hard it is depends on application structure

• Migration from newer Spring version is easier

–may even be required to upgrade first

• Not all applications can be migrated

Lessons Learned

JDD 2013 @ivar_grimstad

Page 53: From the Spring Framework to Java EE 7

Wrap Up

JDD 2013 @ivar_grimstad

Page 54: From the Spring Framework to Java EE 7

JDD 2013 @ivar_grimstad


Recommended