Spring Me

  • Uploaded by: Wilfred Springer
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Spring Me as PDF for free.

More details

  • Words: 1,319
  • Pages: 40
Spring ME Unleashing Spring to the Rest of the Platorm

J-Spring 2009 Wilfred Springer

Java is doing AWESOME!

2

Source: Tiobe Programming Community Index March

Spring is doing GREAT!

+

=

3

Source: Evans Data, 2008

But that's like... a freaking big number

4

… or is it?

SAN MATEO, Calif.—November 19, 2008 – SpringSource, a leading provider of infrastructure software and the company behind Spring, the de facto standard in enterprise Java, today announced that results from an extensive Evans Data research study reveal large scale adoption and penetration of Spring as a means of increasing developer productivity and combating complexity in today’s enterprise

application infrastructure market.

5

Java Nodes in the Cloud ● ● ● ●

3 Billion Java-Enabled Cards in 2007 1.8 Billion Java-Enabled Phones in 2007 7 Million Java Set-top Boxes 1 Million GWT downloads in 2007

6

Not all men are equal

Versus

7

We the people

“We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty, and the Pursuit of Happiness.”

8

We the people “We hold these truths to be self-evident, that all men... Java Developers are enttled to get their porton of Spring goodness.” Not just Java EE developers Not just Java SE developers But also Java ME developers And Java Card developers 9

Why Spring?

All Spring's goodness summarized in famous last words

10

IoC Container

“Trust us, we know what we're doing.” “Don't call us, we call you.”

11

Sanitized API

“Any problem in computer science can be solved with another layer of indirecton.” – David Wheeler

AOP

“Once you have a hammer, everything else is a nail.”

So why not use Spring itself? Platorm Limitatons ● Limited Java Runtme capabilites ● Limitatons imposed by deployment ● Limited computatonal resources – – –

Limitatons on heap Limitatons on applicaton size Limitatons on performance

Java Runtime Limitations

GWT Java ME Java Card

t c ) e ( l f e ) .( .. anc g.re g e t n trin s m a t l n a I . s S i a . N ew L r v g . l o a i n j t .f .n a r l u s s . . e r s s a a a h a a v v Cl Cl Ot ja ch ja n n n y y y y y n y y n n n n n n n

BeanFactory#getBean(String name)? BeanFactory#getBean(char[] name)?

Deployment Limitations (1) <property name=”title” value=”Into the Wild”/>

1

OBFUSCATION package com.mgm; public class Movie { void setTitle(String title); } 2

package a.b; public class a { void a(String ...); } 3

<property name=”a” value=”Into the Wild”/>

4

Deployment Limitations (2) ● ●

GWT → JavaScript Java Card → CAP fles

Computational Resources (1) ● ●

Heap: Java SE –



Java ME – – –



Max heap approx. 1.5 GB Lower bound max. heap: 140 KB Upper bound max. heap: 128 MB Between factor 11 and 11,714 diference

Java Card –

16 K RAM

Computational Resources (2) ● ●

Applicaton size: Java ME: Upperbounds between 64 KB and 28 MB Spring Core Spring Beans Spring Context Total

267KB 467KB 455KB 1189KB

Throughput ●

Nokia E71: –



Gameboy Advance – –



369 MHz ARM 11 CPU 16 MHz ARM 7 CPU C-Ray Raytracing Benchmark 296108 s

Dell PowerEdge M710 – –

2.4 GHz Xeon Quad Core CPU C-Ray Raytracing Benchmark 201 s

Introducing Spring ME's IoC Do most of the hard work at build time

21

Assume this object model

22

And you want to create this

23

The Spring (ME) configuration <property name=”movies”> <list> <property name=”title” value=”Bye Bye Blue Bird”/> <property name=”director” value=”Søren Kragh-Jacobsen”/> <property name=”year” value=”1999”/>

24

… And with the Maven plugin <project> me.springframework <artifactId>spring-me-maven-plugin 1.0-SNAPSHOT <executions> <execution> generate ....context.xml com.mgm.BeanFactory 25

You get this BeanFactory public class BeanFactory { public Object getBean(String name) { if (“movieFinder”.equals(name)) { return getMovieFinder(); } } private final Object getMovieFinder() { … }

}



26

DEMO ● ● ●

Spring ME on Java SE Spring ME on Java ME Spring ME on GWT

27

Spring ME ●

● ● ●

Compile tme validaton –

“Is 10e2 a valid int representaton?”



“Is an instance of Boeing747 assignable to a property of type Airplane?”

Minimal or no runtme dependencies Superfast (but no benchmarks to verify this) Small (1K?)

Under the hood

29

Spring ME Meta Model ● ● ●

Meta Model independent of Spring Typically Spring XML confguraton is used Meta Model supports other sources

Spring XML Configuration

Spring ME Meta Model

Spring ME BeanFactory 30

Other sources? @Autowired @PostConstruct @PostDestroy

@ProvidedBy @Inject @ImplementedBy

Annotations

Spring ME Meta Model Spring XML Configuration

Spring ME BeanFactory

31

Spring ME's Meta Model

32

Meta Model Instantiated

33

If not Spring ME, then what? ●

Java Card – –



None (Spring ME?)

Java ME – – – –

Signal Israfl IoC Fall ME Spring ME



GWT – – – – –

GWToolbox Rocket GWT GIN Spring ME Suco

Inversion of Control Galore

Rocket GWT Spring ME Israfil IoC Fall ME GWToolbox Signal

x it on rs nta ra lde Sy on i u t n t d atio nfig eho lian ec tion ds j o o n th d eth gur n co lac mp * or i njec e s s i s g o m nf tio y p Co n ct y i e m n i h o E ton ype i t t t r y o a r y t ru r m e i T va M gle otot zy ger ctor t me stro L c not ope ring as llec nst ope na typ tow i n i W G Ja Si Pr La Ea Fa In De XM An Pr Sp Al Co Co Pr By By Au y n y y y y y y y y n y n n all y y y n ? y y y y y y y y y y n n y n l/m y y y y ... n y y n n n n n n n n n n n ... y n n y y n y y n n n n n n n n n n n ... y n n n n y n y y y y ? y y n y y n n all n y n y y n n y y n n ? n n n y n y n all n y y ? ?

35

The Rest: Sanitized API ●

Java ME needs a lot more sanity –





J2ME Polish is your friend

Java Card is probably too limited to use wrapper API GWT is already addressed by a lot of frameworks

36

The Rest: AOP? ● ●



What about it? Using the metadata, proxies could be constructed at build tme The factory could construct these proxies instead of the actual objects

37

Current status ●

'Request' scope



'Session' scope



'Global session' scope



BeanFactoryAware, but ...



BeanPostProcessor (without refecton?)



BeanFactoryPostProcessor, but ...



FactoryBean, but ...

38

If there's only one thing ● ●

● ● ● ●

“ME” as in “supportng Java ME” “ME” as in “a microscopic small version of Spring” Useful for Java ME Useful for GWT Useful for Java SE Potentally useful for Java Card and Java EE 39

Roadmap ● ● ● ● ●

Version 1.0 (J109 release) end of May 2009 Integraton with J2ME Polish BOF-4470, June 4, JavaOne htp://springframework.me/ [email protected]

40

Related Documents

Spring Me
November 2019 2
Spring Me
April 2020 4
Spring
May 2020 30
Spring
November 2019 40
Spring
April 2020 29
Spring
December 2019 33

More Documents from ""

Preon Introduction
November 2019 9
Spring Me
April 2020 4
Preon Under The Hood
November 2019 2
Vw T4 Westfalia Manual
April 2020 4
Spring Me
November 2019 2