O documento apresenta os frameworks JBoss Seam e Spring, discutindo suas vantagens e como integrá-los. Seam é útil para aplicações web devido ao seu suporte a Ajax e estados, enquanto Spring facilita a integração com serviços Java EE. Ao combinar os dois frameworks, pode-se construir aplicações web sofisticadas aproveitando os recursos de cada um através de Injeção de Dependência e Inversão de Controle.
1. Jus tJava 2008
Inte g rando o futuro :
JBo s s S e am e S pring
Frame wo rk
Alberto Lemos (Dr. Spock)
Instrutor Globalcode
2. Obje tivo
Apre s e ntar o s as pe c to s po s itivo s de c ada
frame wo rk e c apturar o me lho r de c ada um
no de s e nvo lvime nto de aplic aç õ e s We b
3. Ag e nda
• Intro dução : JBo s s S eam e S pring Frame work
• Po rque us ar o Se am?
• Po rque us ar o Spring?
• Po rque inte g rar o s dois frame works ?
• Pas s o s para inte graç ão
• Pro blemas de inte graç ão
• De mo ns traç ão
• Co nc lus ão
• Perg untas & Re s pos tas
4. JBo s s S e am
• Um proje to ope n s ourc e de us o livre pa ra c ons truir
a plic a ç õe s We b ric a s c om J a va , inte grando Ajax, JSF,
JPA, EJB 3.0 num fra me work unific a do, c omple to e
s ofis tic a do;
• F a c ilita a integ raç ão c om ba ixo a c opla me nto da s c amadas
de uma aplic aç ão We b a tra vé s de IoC e DI via a nota ç õe s ;
• Um JS F Manag e d Be an é s ubs tituído c omple ta me nte por
um Se am Co mpone nt, que pode s e r um JavaBe an ou EJB
(s ta te le s s ou s ta te ful);
5. JBo s s S e am
• Se am po de s e inte grar c om Spring , Hibe rna te , P ortle ts ,
J P A, iTe xt, E J B ;
• P ode s e r us a ndo e m qua lque r s e rvidor de a plic a ç õe s J a va
E E 5 ou Tomc a t;
• P romove um mode lo de a rquite tura de s a c opla da c om us o
inte ns o de DI.
6. S pring Frame wo rk
• Um proje to ope n s ourc e de us o livre pa ra c ons truir
a plic a ç õe s e nte rpris e c om J a va , inte grando os s e rviços
Java EE (s e g ura nç a , tra ns a ç ã o, pe rs is tê nc ia , a c e s s o
re moto, pooling , me s s a g ing , e tc );
• F a c ilita a integ raç ão c om ba ixo a c opla me nto da s c amadas
de uma aplic aç ão e nte rpris e a tra vé s de IoC e DI via
a nota ç õe s ;
• Um co mpo ne nte de ne góc ios ou um J S F Ma na g e d B e a n
pode s e r imple me nta do, ins ta nc ia do e c onfig ura do a tra vé s
de POJOs (ou JavaBe ans );
7. S pring Frame wo rk
• P ode s e r us a do e m qua lque r s e rvidor de a plic a ç õe s J 2E E
1.4, J a va E E 5 ou e m a plic a ç õe s de s ktop;
• S pring promove inte graç ão c om dive rs as te c nologias e
framewo rks : J S F , S truts , OS G i, E J B , J P A, Hibe rna te ,
TopLink, J DB C, J DO, iB a tis , J TA, J MS , J CA, J AX-R P C,
J AX-WS , J MX, Qua rtz , B e a nS h e ll, G roovy, J R uby,
F re e Ma rke r, Ve loc ity, J a s pe rR e ports , P ortle ts ;
• P romove um mode lo de a rquite tura de s a c opla da c om us o
inte ns o de IoC e DI.
8. Po rque us ar o S e am?
• Aborda g e m re voluc ioná ria no g e re nc ia me nto de s e s s ã o;
• F á c il inte g ra ç ã o c om bibliote c a s de UI c om s uporte a Aja x;
• F ra me work pa ra E J B 3: nã o h á dis tinç ã o e ntre J a va B e a ns e
EJB;
• P ode s e r us a do c om J 2E E 1.4 ou a té me s mo c om o
Tomc a t;
• Dive rs os re c urs os a g re g a dos : J B os s R ule s , jB P M,
CAP TCHA.
9. Po rque us ar o S pring ?
• Um fra me work pa ra a plic a ç õe s e nte rpris e , a lé m de
a plic a ç õe s We b;
• Ofe re c e inte g ra ç ã o c om dive rs a s te c nolog ia s e fra me works
a lé m da s te c nolog ia s pa drõe s (J CP );
• F a c ilita o de s e nvolvime nto de a plic a ç õe s c om o us o de
Orie nta ç ã o a As pe c tos (AOP );
• P e rmite o us o de s e rviç os e nte rpris e (J a va E E ) de ma ne ira
nã o-intrus iva e ba ixo a c opla me nto;
• P ode s e r us a do e m a plic a ç õe s que a inda nã o us a m J a va
E E 5 ou J a va S E a nte riore s a J a va 5.
10. Po rque us ar o s 2 frame wo rks ?
• O Se am ofe re c e s oluç õe s pa ra a c e s s o a s s ínc rono,
c onc orre nte e s ta te full à s c a ma da s Vie w e Controlle r;
• Se am s uporta IoC e DI na inte graç ão e ntre as camadas
Vie w e Controlle r;
• Spring ofe re nc e s oluç õe s pa ra inte g ra ç ã o de s e rviços EE
na c amada Mo del c om um mode lo de c ompone ntiz a ç ã o
be a s e a do e m P OJ Os ;
• Spring s uporta IoC e DI na inte graç ão e ntre as c amadas
Co ntro lle r e Mo de l;
• Um co mpo ne nte g e re nc ia do pe lo Spring pode s e torna r
um Se am Co mpone nt.
11. Pas s o s para inte g raç ão
• Config ura r o s ta rtup do S e a m a tra vé s do we b.xml;
• Config ura r o s ta rtup do S pring a tra vé s do S e a m
(c o mpo ne nts .xml);
• Config ura ç ã o do S pring EL Res olve r no fac es -c onfig.xml;
• Dis ponibiliz a r os e s c opos do S eam c omo e s c opos no
S pring (s pring -c onfig .xml);
• Config ura r be a ns no S pring via a nota ç õe s ou XML;
• Us a r a nota ç õe s ou ta g s XML do S e a m e m be ans
g e re nc ia dos pe lo S pring pa ra e xpor como Se am
Co mpo ne nt;
12. Pas s o s para inte g raç ão
• Us a r a nota ç õe s do S e a m pa ra bije ç ã o de proprie da de s dos
be a ns ;
• Config ura r o g e re nc ia dor de tra ns a ç õe s no S pring ;
• Config ura r a fá bric a de E ntityMa na g e r no S pring ;
• Config ura r o g e re nc ia dor de tra ns a ç õe s no S e a m obtido a
pa rtir do S pring ;
• Config ura r o c onte xto de pe rs is tê nc ia no S e a m obtido a
pa rtir do S pring .
15. Pro ble mas de inte g raç ão
• S ta te le s s (S pring ) ve rs us S ta te ful (S e a m);
• S e a m nã o s uporta proxie s via J DK;
• S pring s uporta proxie s via J DK (de fa ult) e CG LIB ;
• O S e a m e S pring proc e s s a m a s a nota ç õe s J a va E E (J S R -
250): @P os tCre a te e @P re de s troy;
• Ne c e s s á rio de s lig a r o proc e s s a me nto de s ta s a nota ç õe s
pa ra e vita r a dupla e xe c uç ã o;
• Nã o é pos s íve l us a r os S e a m Compone nts inje ta dos nos
mé todos a nota dos c om @P os tCre a te e @P re de s troy no
be a ns S pring .
16. Pro ble mas de inte g raç ão
• S pring B e a n c omo S e a m Compone nt (Outje c tion):
• S pring B e a n re fe rê nc ia S e a m Compone nt (Inje c tion):
17. Pro ble mas de inte g raç ão
• J DK P roxy ve rs us CG LIB P roxy:
JDK Proxy CGLIB Proxy
18. Co nc lus ão
• O S e a m ofe re c e s oluç õe s pa ra proble ma s c lá s s ic os na
c a ma da de a pre s e nta ç ã o we b;
• O S e a m ofe re c e um me c a nis mo s ofis tic a do de e s c opo de
c onve rs a ç ã o e g e re nc ia me nto de c onte xto de pe rs is tê nc ia ;
• O S pring ofe re c e um mode lo de c ompone ntiz a ç ã o c om
a c e s s o a s e rviç os E E pa drõe s ou nã o;
• Ambos os fra me works dis ponibiliz a m um mode lo ba s e a do
e m IoC e DI;
• O us o inte g ra do pe rmite imple me nta r a plic a ç õe s mode rna s
e s ofis tic a da s forte me nte ba s e a da s e m MVC na We b.
20. Re fe rê nc ias na Inte rne t
• S e a m F ra me work
h ttp :/ s e a m fra m e work.org /
/
– S pring F ra me work
h ttp :/ www.s p rin g fra m e work.org /
/
– J a va E E a t a G la nc e
h ttp:/ ja va .s u n.c om / va e e /
/ ja
– jbos s .org
h ttp :/ www.jb o s s .org /
/