cursospring presentacion

164
Curso de Spring Framework 

Upload: gabriel-valencia

Post on 09-Jan-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Curso de spring 3.0

TRANSCRIPT

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 1/164

Curso deSpring Framework 

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 2/164

¿Quiénes somos?

Carlos Eduardo Ayala LeandroSoftware Developer, +9 años deeperien!ia"adrid # España

  !eal$%$%&gmail'!om

  Carlos Ayala

  (ttp)**software#devlearnings'logspot'!om'es*

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 3/164

Spring Framework

ntrodu!!i-n – En la actualidad hay muchos

frameworks y componentes desoftware que facilitan eldesarrollo de aplicacionesempresariales.  JS

 .ava"a

ilEJ!

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 4/164

Spring Framework

ntrodu!!i-n – "as aplicaciones empresariales

de#en tener la capacidad deconectarse con otrasaplicaciones o ser$icios.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 5/164

Spring Framework

ntrodu!!i-n – "as aplicaciones de#en ser

altamente adapta#les a loscam#ios tecnol%gicos.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 6/164

Spring Framework

/0u1 es SpringFramework2

 –

Es una plataforma queproporciona un soporteintegral de las diferentesinfraestructuras que permitenel desarrollo de aplicaciones

 Ja$a.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 7/164

Spring Framework

/0u1 es SpringFramework2

 –

Spring es una plataforma quegestiona las diferentesinfraestructura quenecesitamos para dedicarnossolo al desarrollo Ja$a.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 8/164

Spring Framework

/0u1 es SpringFramework2 – Spring nos permite construir

aplicaciones haciendo uso deo#&etos planos Ja$a '(J().

 – Spring puede aplicarse paradesarrollar aplicaciones #a&o elmodelo JSE o JEE.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 9/164

Spring Framework

3istoria de SpringFramework 

 –

En el a*o +,,, -o# Johnsonescri#i% los primeroscomponentes de Springmientras tra#a&a#a comoconsultor independiente parasus clientes en la industria/nanciera en "ondres.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 10/164

Spring Framework

3istoria de SpringFramework 

 –

-od ampli% consigui% una formasinteti0ar la forma de utili0ar losdiferentes componentes J+EE.

 – ara el +,,1 las aplicaciones

empresariales #asadas en Ja$ade#2an escri#irse usando el 34 Ja$a Ser$let o los EJ!s.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 11/164

Spring Framework

3istoria de SpringFramework 

 –

"as aplicaciones stand5aloneen el +,,1 pod2an escri#irsecon muchas 34s li#res opri$ati$as que se adaptaran alas necesidades del proyecto.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 12/164

Spring Framework

3istoria de SpringFramework 

 –

Se form% un peque*o equipode desarrolladores queespera#a tra#a&ar en e6tenderel framework y un proyectofue creado en Sourceforge enfe#rero de +,,7.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 13/164

Spring Framework

3istoria de SpringFramework 

 –

8espués de tra#a&ar en sudesarrollo durante m9s de una*o lan0aron una primera$ersi%n '1.,) en mar0o de+,,:.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 14/164

Spring Framework

3istoria de SpringFramework 

 –

8espués de este lan0amientoSpring gan% mucha popularidaden la comunidad Ja$a de#idoen parte al uso de Ja$adoc y de

una documentaci%n dereferencia por encima delpromedio de un proyecto dec%digo a#ierto.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 15/164

Spring Framework

3istoria de SpringFramework 

 –

Spring fue duramente criticadoen +,,: y sigue siendo el temade acalorados de#ates.

 – 3l tiempo del primer gran

lan0amiento muchosdesarrolladores y l2deres deopini%n $ieron a Spring como uncam#io muy positi$o.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 16/164

Spring Framework

3istoria de SpringFramework 

 –

Spring Framework hi0o queaquellas técnicasdesconocidas para la mayor2ade programadores se $ol$ieran

populares en poco tiempo 'pore&emplo 4o;).

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 17/164

Spring Framework

3istoria de SpringFramework 

 – En el +,,: Spring disfrut% deunas alt2simas tasas deadopci%n y al ofrecer su propioframework de programaci%n

orientada a aspectos '3()consigui% hacer m9s popular suparadigma de programaci%n enla comunidad Ja$a.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 18/164

Spring Framework

3istoria de SpringFramework 

 –

En +,,= este frameworksuper% sus cifras de adapci%nque el anterior y supopularidad continua

aumentando.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 19/164

Spring Framework

/0u1 podemos lograr2

 –odemos crear un método

que e&ecute una transacci%ncontra la #ase de datos sinhacer uso del 34 de

transacciones.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 20/164

Spring Framework

/0u1 podemos lograr2

 –odemos crear un método

que realice una llamada a unprocedimiento remoto sinhacer de 34 de llamadas de

procedimientos remotos.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 21/164

Spring Framework

/0u1 podemos lograr2 –odemos crear un método

que administre operaciones

sin hacer uso del 34 J>.

 –odemos crear un método

que administre el en$2o yrecepci%n de mensa&es sinhacer uso directo del 34

 J>S.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 22/164

Spring Framework

oC) nversion of Control

 – Es un principio en el que el

control de e&ecuci%n delprograma de&a de ser de simismo y pasa a ser de lali#rer2a que implanta el 4o;.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 23/164

Spring Framework

oC) nversion of Control

 – "as interfaces han

populari0ado este método deprogramaci%n.

 –

"as li#rer2as de 4o; poseen unmotor que gestiona todo elcontrol de este principio.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 24/164

Spring Framework

oC) nversion of Control – ¿;%mo utili0amos 4o;?

• ;onstruimos nuestra aplicaci%n.

• ;on/guramos cada componentede nuestra aplicaci%n.

• El motor Spring se encarga deinstanciar y e&ecutar loscomponentes de acuerdo a lacon/guraci%n.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 25/164

Spring Framework

D) Depende!y n4e!tion

 – Es un patr%n de dise*o

orientado a o#&etos en el quese suministran o#&etos a unaclase en lugar de ser la propiaclase quien cree el o#&eto.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 26/164

Spring Framework

D) Depende!y n4e!tion – ¿;%mo utili0amos el 84?

• ;onstruimos los componentes dela aplicaci%n.

• ;on/guramos cada dependenciadel componente.

• El motor Spring instancia cadacomponente proporcionandole surespecti$a dependencia.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 27/164

Spring Framework

D) Depende!y n4e!tion – @enta&as

• -educe el c%digo pegamentoes decir minimi0a la cantidadde c%digo que usamos escri#irpara unir distintoscomponentes.

• Facilita la e$oluci%n dedependencias sin recompilar elc%digo del proyecto.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 28/164

Spring Framework

D) Depende!y n4e!tion – @enta&as

• "as dependencias soncontroladas en un Anico lugarBel motor 4o;.

• Facilita la calidad de la

aplicaci%n al estar alta yf9cilmente integrada conframework de prue#asunitarias y mocks.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 29/164

Spring Framework

Ar5uite!tura de Spring

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 30/164

Spring Framework

Ar5uite!tura de Spring – Contenedor de oC) ermite

la con/guraci%n de loscomponentes de la aplicaci%ny la administraci%n del ciclo de$ida de los o#&etos Ja$a selle$a a ca#o principalmente a

tra$és de la inyecci%n dedependencias.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 31/164

Spring Framework

Ar5uite!tura de Spring – 6rograma!i-n orientada a

aspe!tos) ha#ilita laimplementaci%n de rutinastrans$ersales.

 – A!!eso a datos) se tra#a&acon -8!>S usando J8!; o

motores (->. Cam#ién se estaproporcionando soporte (-> a#ase de datos Do SQ".

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 32/164

Spring Framework

Ar5uite!tura de Spring – 7esti-n de transa!!ionesB

uni/ca las distintas 34s degesti%n de transacciones y

coordina las transacciones delos o#&etos Ja$a.

 – "8CB es un framework #asado

en CC y ser$lets que pro$eeherramientas para el desarrollode aplicaciones we# y ser$icios-ESC.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 33/164

Spring Framework

Ar5uite!tura de Spring – Framework de a!!eso

remoto) ermite laimportaci%n y e6portaci%nestilo -; de o#&etos Ja$a atra$és de redes que soporten->4 ;(-!3 y protocolos

#asados en CC incluyendoser$icios we# 'S(3).

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 34/164

Spring Framework

Ar5uite!tura de Spring – Conven!i-n sore

Congura!i-n) el m%duloSpring -oo ofrece una soluci%nr9pida para el desarrollo deaplicaciones #asadas enSpring Framework dando

prioridad a la simplicidad sinperder e6i#ilidad.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 35/164

Spring Framework

Ar5uite!tura de Spring – 6ro!esamiento por lotes) es

un framework capa0 deprocesar grandes $olumenesde datos. ;on capacidadespara e$aluar el rendimientodel proceso en lote y la

administraci%n de recursos.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 36/164

Spring Framework

Ar5uite!tura de Spring – Autenti!a!i-n and

Autori:a!i-n) procesos deseguridad con/gura#les quesoportan un rango deest9ndares protocolosherramientas y pr9cticas a

tra$és del su#proyecto SpringSecurity 'antiguamente 3cegi).

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 37/164

Spring Framework

Ar5uite!tura de Spring – Administra!i-n ;emota)

;on/guraci%n de $isi#ilidad ygesti%n de o#&etos Ja$a para lacon/guraci%n local o remota$2a J>.

 – <esting) Soporte de clases

para desarrollo de unidades deprue#a e integraci%n.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 38/164

Spring Framework

Ar5uite!tura de Spring – "ensa4es) -egistro

con/gura#le de o#&etosreceptores de mensa&es parael consumo transparentedesde la a tra$és de J>S uname&ora del en$2o de mensa&es

so#re las 34 J>S est9ndar.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 39/164

Spring Framework

Spring Container –Es un componente

encargado de crear los

o#&etos conectarlos entre sicon/gurarlos y adem9scontrola el ciclo de $ida decada o#&eto mediante el 84.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 40/164

Spring Framework

Spring Container –El contenedor Spring se

puede con/gurar mediante

>" anotaciones oprogram9ticamente.

 –ara personali0ar estecontenedor de#emosB• ;rear los #eans.

• ;on/gurar los ser$icios de usaracada #ean.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 41/164

Spring Framework

Spring Container – ;on/guraci%n del contenedor.

• ;rear >" de con/guraci%n delcontenedor.

• Se instancia cada o#&eto de laaplicaci%n mediante la siguientecon/guraci%n.

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="htt!###.sring$rame#or%.orgschemabeans"xmlns!xsi="htt!###.#&.org'001()*+chema-instance"xsi!schema*ocation="htt!###.sring$rame#or%.orgschemabeanshtt!###.sring$rame#or%.orgschemabeanssring-beans.xsd">

<!-- Bean definitions go here --><beans>

<bean id="..." class="..."><!-- collaborators and configuration for this bean go here --> <bean>

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 42/164

Spring Framework

Spring Container – 4nstanciaci%n del contenedor

• Es necesario crear un o#&eto del3pplication;onte6t que se adapte a

las caracter2sticas del proyecto.

• Es necesario indicarle al contenedorque /cheros de con/guraci%n

de#er9 le$antar.3pplication;onte6t conte6t G new ;lassathml3pplication;onte6t'

new StringHI Kapplication.6mlL Kdaos.6mlLM)N

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 43/164

Spring Framework

Spring Container – Oso del contenedor

• El contenedor dispone de unmétodo que nos permite o#tener

los #eans con/gurados.

• ;uando deseamos utili0ar un #ean

llamamos a este método pasandolelos argumentos o#ligatorios.etStoreSer$ice ser$ice G conte6t.get!ean'LpetStoreLetStoreSer$ice.!lass)N"istPString user"ist G ser$ice.getOsername"ist')N

 C get!ean'String name ;lassPC requiredCype)

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 44/164

Spring Framework

Spring Container – 4nyecci%n de dependencias

• Este patr%n nos permitealcan0ar un c%digo m9sdesacoplado para acometerlos test unitarios y cam#iarpartes del sistema m9s

f9cilmente.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 45/164

Spring Framework

Spring Container – 4nyecci%n de dependencias

• ;ada componentes de#edeclarar sus dependenciaspero no se encargara deconseguirlas.

• El contenedor Spring es el

encargado de resol$er todaslas dependenciascon/guradas dentro de cada#ean.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 46/164

Spring Framework

Spring Container – 4nyecci%n de dependencias

• E&emplo sin 84.

pu#lic class Reneratorlaylist

  pri$ate SongsFinder songsFinderN 

pu#lic Reneratorlaylist')  this. songsFinder G new SongsFinder')N  M

  M

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 47/164

Spring Framework

Spring Container – 4nyecci%n de dependencias

• >ediante constructor – El #ean que no posee c%digo para

#uscar dependecias 'setters o getters). – El #ean tiene un construtor con

argumentos donde puede pasarsele lasdependecias.

 – "a con/guraci%n puede reali0arse

mediante >" o anotaciones.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 48/164

Spring Framework

Spring Container – 4nyecci%n de dependencias• >ediante constructor

 – ;%digo Ja$a

 – ;on/guraci%n >"

pu#lic class Reneratorlaylist     pu#lic Reneratorlaylist'SongsFinder songsFinder)  this. songsFinder G songsFinderN  M  M

P#ean idGL songsFinder L classGLcom.test. SongsFinderKTP#ean idGLgeneradorlaylistL classGLcom.test. ReneratorlaylistL  Pconstructor5arg typeGL com.test. SongsFinder L refGLsongsFinderL  PTconstructor5argPT#ean

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 49/164

Spring Framework

Spring Container – 4nyecci%n de dependencias• >ediante setter

 – El #ean que posee c%digo para #uscar

dependecias 'setters o getters). – El #ean puede tener o no constructor

con argumentos.

 – "a con/guraci%n puede reali0arsemediante >" o anotaciones.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 50/164

Spring Framework

Spring Container – 4nyecci%n de dependencias• >ediante constructor

 – ;%digo Ja$a

 – ;on/guraci%n >"

pu#lic class Reneratorlaylist     pu#lic Reneratorlaylist')M 

pu#lic SongsFinder getSongsFinder')M

  pu#lic $oid setSongsFinder'SongsFinder songsFinder)M  M

P#ean idGL songsFinder L classGLcom.test. SongsFinderKTP#ean idGLgeneradorlaylistL classGLcom.test. ReneratorlaylistL  Pproperty nameGLsongsFinderL refGL songsFinderKTPT#ean

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 51/164

Spring Framework

Appli!ation Contet – -epresenta al contenedorde 4o; de Spring y es elresponsa#le de instanciar

con/gurar y ensam#lar los#eans.

 – El contenedor o#tiene lainformaci%n de qué o#&etos de#ecrear leyendo los metadatos dela con/guraci%n en >"anotaciones o #a&o Ja$a.

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 52/164

Spring Framework

Appli!ation Contet – El 3pplication ;onte6t es unainterfa0 que proporciona toda lafuncionalidad del contenedor

Spring. – Entre las implementaciones m9s

utili0adas est9nB• Class6at(=mlAppli!ationContet• FileSystem=mlAppli!ationConte

t• >eAppli!ationContet

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 53/164

Spring Framework

Appli!ation Contet – ;lassathml3pplication;onte6t

• Es un contenedor que o#tiene los/cheros de con/guraci%n >"dentro del conte6to del classpathdel proyecto.

• Este contenedor esta dise*ado para

aplicaciones standalone.3pplication;onte6t conte6t G new ;lassathml3pplication;onte6t'Lconte6t.6ml L)N

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 54/164

Spring Framework

Appli!ation Contet – FileSystemml3pplication;onte6t

• Es un contenedor que o#tiene los/cheros de con/guraci%n desde unaruta del sistema de /cheros o desdeun O-".

• Este contenedor esta dise*ado paraaplicaciones standalone.

3pplication;onte6t ct6 G new FileSystemml3pplication;onte6t'L#uildTapplication.6mlL)N

i k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 55/164

Spring Framework

Appli!ation Contet – Ue#3pplication;onte6t• Es un contenedor de solo lectura

que pro$ee la con/guraci%n Spring

desde una aplicaci%n we# Ja$a.• Este contenedor da soporte al

Ser$let;onte6t.

• Este contenedor esta dise*ado para

aplicaciones we# Ja$a.Ue#3pplication;onte6t ct6 GUe#3pplication;onte6tOtils.getUe#3pplication;onte6t'ser$let;onte6t)N

S i k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 56/164

Spring Framework

;esour!es – Ja$a da soporte un soporte#9sico a la o#tenci%n y mane&ode recursos mediante

 &a$a.net.O-" – El o#&eto O-" no proporciona un

control a #a&o ni$el del recursoque se intenta controlar con esteo#&eto.

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 57/164

Spring Framework

;esour!es – Spring proporciona una interfa0que a#strae al desarrollador delmane&o a #a&o ni$el de un

recurso. – "a interfa0 -esource posee est9

estructuraB,blic inter$ace eso,rce extends n,t+tream+o,rce /

  boolean exists2

  boolean is3en2

  U* getU* thro#s 34xcetion2

  File getFile thro#s 34xcetion2

  eso,rce createelative+tring relative5ath thro#s 34xcetion2

  +tring getFilename2

  +tring get6escrition2

7

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 58/164

Spring Framework

;esour!es – getnputStream@) "ocali0aa#re el recurso y retorna unstream a#ierto del frecurso.

 – eists@) 4ndica si el recursoe6iste f2sicamente.

 – isBpen@) 4ndica si el resurso

esta a#ierto o disponi#le. – getDes!ription@) -etorna la

descripci%n del recurso.

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 59/164

Spring Framework

;esour!es – mplementa!iones de

;e!ursos• rl;esour!e) esta

implementaci%n de &a$a.net.O-" da soporte arecursos en CC FC etc.

Class6at(;esour!e) Estaimplementaci%n proporcionarecursos en el 9m#ito delclasspath.

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 60/164

Spring Framework

;esour!es – mplementa!iones de;e!ursos• FileSystem;esour!e) Esta

implementaci%n proporcionarecursos en el 9m#ito delsistema de /cheros.

• ServletContet;esour!e) esuna implementaci%n de permiteo#tener recursos desde la rutaprincipal de una aplicaci%n we#.

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 61/164

Spring Framework

;esour!es – mplementa!iones de;e!ursos• nputStream;esour!e) es

una implementaci%n queo#tiene el recurso en elformato 4nputStream.

yteArray;esour!e) es unaimplementaci%n que o#tiene elrecuro en el formato!yte3rray4nputStream.

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 62/164

Spring Framework

;esour!e Loader – Es una interfa0 que nos permitecargar los recursos quedeseamos utili0ar.

 – odemos llamar a recursos con

el conte6to de aplicaci%nindic9ndole la u#icaci%n.

public interface ResourceLoader {  eso,rce geteso,rce+tring location2

7

-esource template G ct6.get-esource'"some/resource/path/myTemplate.txt")N

S i F k

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 63/164

Spring Framework

;esour!e Loader – odemos o#tener recursosespeci/cos mediante esta#lecerun pre/&o al solicitar el mismo.

-esource template Gct6.get-esource'“classpath:some/resource/path/myTemplate.txt")N

6re4o Epli!a!i-n

classpathB ;arga un recurso desde el classpath.

/leB ;arga un recurso como un O-" desde el sistema dearchi$os.

httpB ;arga un recurso como un O-".

'ninguno) 8epende de el 3pplication;onte6t

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 64/164

Spring Framework

ean Fa!tory – Es una implementaci%n delpatr%n Factory que proporcionaSpring para la creaci%n de los

#eans con/gurados en elconte6to.

 – ara construir un #ean desdeeste componente de#emos

proporcionar el nom#re del #ean.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 65/164

Spring Framework

• ean Fa!tory – "os o#&etos que puede de$ol$er el

!ean factory cumplen lossiguientes patronesB•

SingletonB se crea y retorna la mismainstancia as2 se llame m9s de una $e0.

• rototypeB se crea y retorna tantasinstancias como solicitudes serealicen.

 – "a implementaci%n m9s usada esml!eanFactory que reci#e el/chero de con/guraci%n >".

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 66/164

Spring Framework

ean Fa!tory – El ml!eanFactory se creapasandole un 4nputStream del/chero de con/guraci%n.

 – ara o#tener un #ean se de#ellamar al método get pasandoleel nom#re del #ean.

eanFactor9 b$ = ne# (mleanFactor9ne# Filen,t+tream:beans.xml;2

Oser8ao user8ao G 'Oser8ao) #f.get'Kuser8aoV)N

Spring Frame ork

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 67/164

Spring Framework

="L ean Conguration – "a columna $erte#ral de todoproyecto Spring es lacon/guraci%n de sus #eans.

 – Ona de las formas decon/guraci%n disponi#les enSpring es >".

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 68/164

Spring Framework

="L ean CongurationAtriuto Des!rip!i-n

class'-equerido)

Dom#re de clase completo del cual se deseacrear un o#&eto.

name 4denti/cador del o#&eto.

scope 3lcance con que ser9 creado el o#&eto.

constructor5arg

3rgumento del constructor

$alue @alor de un atri#uto del o#&eto

ref -eferencia de o#&eto. ;orresponde con el namede un o#&eto.

la0y5init >étodo que indica cuando de#e instanciarse elo#&eto.

init5method >étodo que se in$oca al crear un o#&eto.

destroy5method

>étodo que se in$oca al destruir un o#&eto.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 69/164

Spring Framework

• ="L ean Conguration – E&emplo

P?6ml $ersionGL1.,L encodingGLOCF5WL?P#eans 6mlnsGLhttpBTTwww.springframework.orgTschemaT#eansL6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL6siBschema"ocationGLhttpBTTwww.springframework.orgTschemaT#eanshttpBTTwww.springframework.orgTschemaT#eansTspring5#eans.6sdL

  PX55 3 simple #ean de/nition 55  P#ean idGL...L classGL...L

PX55 colla#orators and con/guration for this #ean go here 55  PT#ean  PX55 3 #ean de/nition with la0y init set on 55  P#ean idGL...L classGL...L la0y5initGLtrueL

PX55 colla#orators and con/guration for this #ean go here 55  PT#ean

PX55 3 #ean de/nition with initiali0ation method 55P#ean idGL...L classGL...L init5methodGL...L

PX55 colla#orators and con/guration for this #ean go here 55PT#eanPX55 3 #ean de/nition with destruction method 55P#ean idGL...L classGL...L destroy5methodGL...L

PX55 colla#orators and con/guration for this #ean go here 55PT#eanPX55 more #ean de/nitions go here 55

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 70/164

Spring Framework

• Annotations – El documento de con/guraci%n en

>" suele ser complicado de hacery tam#ién de mantener.

 –

-equiere conocer en gran detallecuales son los >" Schemas de losm%dulos de Spring que deseamosutili0ar.

 – Si se modulari0a la con/guraci%nes necesario controlar lasimportaciones de los documentosde con/guraci%n.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 71/164

Spring Framework

Annotations – "a con/guraci%n por anotacionessuele a*adir a las clases Ja$ametainformaci%n que aporta

funcionalidad que el conte6to dela aplicaci%n utili0a comocon/guraci%n.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 72/164

Spring Framework

Annotations – ara hacer uso de lacon/guraci%n medianteanotaciones es necesario aplicar

esta con/guraci%n mediante>".<?xml version="1.0" encoding="UTF-8"?><beans xmlns="htt!###.sring$rame#or%.orgschemabeans"  xmlns!xsi="htt!###.#&.org'001()*+chema-instance"  xmlns!context="htt!###.sring$rame#or%.orgschemacontext"  xsi!schema*ocation="htt!###.sring$rame#or%.orgschemabeans  htt!###.sring$rame#or%.orgschemabeanssring-beans.xsd  htt!###.sring$rame#or%.orgschemacontext  htt!###.sring$rame#or%.orgschemacontextsring-

context.xsd"> 

<context!annotation-con$ig>

<beans>

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 73/164

Spring Framework

Annotations – &;e5uired) esta anotaci%n esusada para indicar que unapropiedad de#e tener un $alor

o#ligatorio. – Esta anotaci%n de#e ser utili0ada

en métodos setter.public class SimpleMovieLister {

  private MovieFinder movieFinder;

  e,ired  public void setMovieFinder(MovieFinder movieFinder) {  this.movieFinder = movieFinder;  7  // ...7

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 74/164

Spring Framework

Annotations – &;e5uired) esta anotaci%n esusada para indicar que unapropiedad de#e tener un $alor

o#ligatorio. – Esta anotaci%n de#e ser utili0ada

en métodos setter.public class SimpleMovieLister {

  private MovieFinder movieFinder;

  e,ired  public void setMovieFinder(MovieFinder movieFinder) {  this.movieFinder = movieFinder;  7  // ...7

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 75/164

Spring Framework

Annotations – &Autowired) esta anotaci%ninyecta dependecias a tra$és deatri#utos setter o constructores.

 – 3notaci%n Y3utowired dentro deatri#utos.import org.springframeor!.beans.factor".annotation.#utoired;

public class $e%t&ditor {  ,to#ired

private Spell'hec!er spell'hec!er;

public $e%t&ditor() {

public Spell'hec!er getSpell'hec!er( ){  return spell'hec!er;    public void spell'hec!(){  spell'hec!er.chec!Spelling(); 

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 76/164

Spring Framework

Annotations – 3notaci%n Y3utowired dentro deconstructores.import org.springframeor!.beans.factor".annotation.#utoired;

public class $e%t&ditor {

private Spell'hec!er spell'hec!er;

,to#iredpublic $e%t&ditor(Spell'hec!er spell'hec!er){

S"stem.out.println(*nside $e%t&ditor constructor. );this.spell'hec!er = spell'hec!er;

public void spell'hec!(){spell'hec!er.chec!Spelling();

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 77/164

Spring Framework

Annotations – 3notaci%n Y3utowired dentro desetters.

import org.springframeor!.beans.factor".annotation.#utoired;

public class $e%t&ditor {

  private Spell'hec!er spell'hec!er;

,to#iredpublic void setSpell'hec!er( Spell'hec!er spell'hec!er ){

  this.spell'hec!er = spell'hec!er; 

public Spell'hec!er getSpell'hec!er( ) {return spell'hec!er;

  public void spell'hec!() {spell'hec!er.chec!Spelling();

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 78/164

Spring Framework

Annotations – &0ualier) esta anotaci%ninyecta dependecias conidenti/cadores especi/cos donde

se indiqueimport org.springframeor!.beans.factor".annotation.#utoired;import org.springframeor!.beans.factor".annotation.+ualifier;

public class ,rofile {

,to#ired@,ali$ier"st,dent1"private Student student;

public ,rofile(){

S"stem.out.println(*nside ,rofile constructor. );

public void print#ge() {S"stem.out.println(#ge - student.get#ge() );

public void print/ame() {S"stem.out.println(/ame - student.get/ame() );

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 79/164

Spring Framework

S6EL#ased !onguration – Es un lengua&e de e6presionesque permite la consulta ymanipulaci%n de o#&etos en

tiempo real. – Este lengua&e pro$ee soporte a

las siguientes funcionalidadesB• E6presiones literales.

• E6presiones regulares.

• 4n$ocaci%n de métodos.

• Etc

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 80/164

Spring Framework

S6EL#ased !onguration – E6presiones literales

 – E6presiones #ooleanas

 – 3cceso a funciones

 – 3cceso a atri#utos de #ean

Z[ola SE"\MA/1'B.'B7

Z1+ ]M

Z[ola SE"\.to"ower;ase')M

Zusuario.nom#reM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 81/164

Spring Framework

S6EL#ased !onguration – E6presiones para gesti%n decolecciones

 – E6presiones de clases

 – E6presiones condicionales

 – ;reando instancia

Zempresa.empleadosH+IM

ZC'&a$a.lang.>ath)MZC'&a$a.lang.>ath).random')M

Zusuario.edad 1W ? trueB falseM

Znew 8ate')M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 82/164

Spring Framework

• Ci!lo de vida del ean – Es la secuencia de operaciones a

las que se $en sometidos los#eans desde el punto de $ista de

su creaci%n y posteriordestrucci%n.

 – Spring proporciona mecanismosadecuados para que lasaplicaciones puedan monitori0ary reaccionar a estos e$entos atra$és de métodos callback .

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 83/164

Spring Framework

• Ci!lo de vida del ean – ni!iali:a!i-n

• On #ean puede ser noti/cado de suiniciali0aci%n por parte de Spring

implementando la interfacenitiali:ingean.

• Esta interface tiene un métodopA#lico after6ropertiesSet que sein$oca cuando todas laspropiedades del #ean se haniniciali0ado.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 84/164

Spring Framework

• Ci!lo de vida del ean – ni!iali:a!i-n

• El control de la iniciali0aci%n pormedio de esta interfa0 hace que el

#ean sea dependiente de Spring.import org.springframework.#eans.factory.4nitiali0ing!eanN

pu#lic class i00eria implements i00eriaSer$ice nitiali:ingean 

  pu#lic $oid afterropertiesSet')   M

  ...M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 85/164

Spring Framework

• Ci!lo de vida del ean – ni!iali:a!i-n

• ara e$itar dicha dependencia sepuede utili0ar el atri#uto init#

met(od dentro de la declaraci%ndel #ean en el /chero >".

import org.springframework.#eans.factory.4nitiali0ing!eanN

pu#lic class i00eria implements i00eriaSer$ice

  pu#lic $oid init')   M  ...M

P#ean idGLpi00eriaL classGL...L init#met(odinit

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 86/164

Spring Framework

• Ci!lo de vida del ean – Destru!!i-n

• E6iste unainterface Disposaleean que

proporciona un métodollamado destroy in$ocado porSpring cuando se destruye lainstancia de un #ean.

• Cam#ién se proporciona un métodode destrucci%n mediantecon/guraci%n.P#ean idGLpi00eriaL classGL...L destroy#met(odGeit

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 87/164

Spring Framework

• Ci!lo de vida del ean – "1todos por defe!to

• 4ncluso se da soporte a lainiciali0aci%n y destrucci%n

generali0ada de o#&etos mediantecon/guraci%n desde el tag K#eansV.

P#eans default#init#met(odinit  default#destroy#met(odeit...

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 88/164

Spring Framework

• Ci!lo de vida del ean – Anota!iones

• >ediante la con/guraci%n #a&oanotaciones se dispone de

&6ostContru!t y &6reDestroyque cumplen con las funciones delos métodos antes descritos .import &a$a6.annotation.ost;onstructNimport &a$a6.annotation.re8estroyN

pu#lic a#stract class i00eria implements i00eriaSer$ice

  Yost;onstruct  pu#lic $oid init')   M  Yre8estroy  pu#lic $oid e6it')   MM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 89/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – Es un paradigma de

programaci%n relati$amente

reciente cuya intenci%n espermitir una adecuadamodulari0aci%n de las

aplicaciones y posi#ilitar laseparaci%n de conceptos.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 90/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – /0u1 fun!ionalidades

pueden !onvertirse en

aspe!tos2• "as funcionalidades comunes

pueden ser aspectos.

"as funcionalidades propias deun m%dulo puede seraspectos.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 91/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – <1rminos !omunesCon!epto Des!rip!i-n

3spect Es la funcionalidad que se cru0a a lo

largo de la aplicaci%n que se $a aimplementar de forma modular yseparada del resto de sistema.

 Jointpoint Es un punto de e&ecuci%n dentro delsistema donde el aspecto esconectado.

3d$ice Es la implementaci%n del aspecto.

ointcut 8e/ne los conse&os que se aplicarana cada punto de cruce.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 92/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – <ipos de aspe!tosCon!epto Des!rip!i-n

!efore El aspecto se e&ecuta antes de e&ecutarse elmétodo que lo pro$oca.

3fter El aspecto se e&ecuta después de e&ecutarse elmétodo que lo pro$oca independiente delé6ito o fracaso del método.

3fter5running El aspecto se e&ecuta después de que elmétodo que lo pro$oca retorne un resultado.

3fter5throwing El aspecto se e&ecuta después de de$ol$er

una e6cepci%n el método que lo pro$oca.3round Este aspecto puede reali0ar acciones antes y

después de in$ocar el método interceptado.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 93/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – Congura!i-n asado en ="L

• El >" de con/guraci%n Spring

de#e tener un nue$o esquema ynamespace que da el soporte al3(.

P?6ml $ersionGL1.,L encodingGLOCF5WL?P#eans 6mlnsGhttpBTTwww.springframework.orgTschemaT#eans

6mlnsB6siGhttpBTTwww.w7.orgT+,,1T>"Schema5instance 6mlnsBaopGhttpBTTwww.springframework.orgTschemaTaop

6siBschema"ocationGLhttpBTTwww.springframework.orgTschemaT#eanshttpBTTwww.springframework.orgTschemaT#eansTspring5#eans57.,.6sd

httpBTTwww.springframework.orgTschemaTaophttpBTTwww.springframework.orgTschemaTaopTspring5aop57.,.6sd L

PX55 #ean de/nition ^ 3( speci/c con/guration 55

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 94/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de aspe!to

• ara con/gurar todo lo referente a

aspectos de#emos usar los tags conel namespace KaopV.

• "a con/guraci%n de un aspecto sereali0a con le tag KPaopBcon/gVPaopBcon/g

PaopBaspect idGLmy3spectL refGLa!eanL

...PTaopBaspectPTaopBcon/gP#ean idGLa!eanL classGL...L

...PT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 95/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de aspe!to

• En el tag KPaopBaspectV

identi/camos el aspecto eindicamos la instancia del #ean queimplementa el aspecto.

PaopBcon/gPaopBaspect idGLmy3spectL refGLa!eanL...PTaopBaspect

PTaopBcon/gP#ean idGLa!eanL classGL...L

...PT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 96/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de aspe!to

• En el tag KPaopBaspectV

identi/camos el aspecto eindicamos la instancia del #ean queimplementa el aspecto.

PaopBcon/gPaopBaspect idGLmy3spectL refGLa!eanL...PTaopBaspect

PTaopBcon/gP#ean idGLa!eanL classGL...L

...PT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 97/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de punto de

!ru!e• El tag KPaopBpointcutV podemos

con/gurar el punto de cruce.

• En este tag identi/camos el puntode corte e indicamos la e6presi%n

de cone6i%n.

PaopBcon/g  PaopBaspect idGLmy3spectL refGLa!eanL  PaopBpointcut idGL#usinessSer$iceL e6pressionGLe6ecution'_com.6y0.myapp.ser$ice._._'..))LT

...  PTaopBaspectPTaopBcon/gP#ean idGLa!eanL classGL...L

...PT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 98/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de punto de !ru!e

• En la e6presi%n de cone6i%n podemos

indicar los siguientes puntosB – >odi/cador de acceso.

 – ;lase de componente que de#e serinterceptado.

 – >étodo que de#e ser interceptado.

• En la con/guraci%n de e6presiones sepuede usar el comod2n K_V comoindicador de todo.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 99/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de punto de

!ru!e• E&ecuci%n de un método pA#lico.

• E&ecuci%n de cualquier método queempiece por set_

e6ecution'pu#lic _ _'..))

e6ecution'_ set_'..))

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 100/164

Spring Framework

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de punto de

!ru!e• E&ecuci%n de cualquier método de la

clase K3ccountSer$iceV.

• E&ecuci%n de cualquier método de

las clases dentro del paqueteKser$iceV.

e6ecution'_ com.6y0.ser$ice..'..))

e6ecution'_ com.6y0.ser$ice...'..))

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 101/164

Sp g a e o

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de advi!e

• efore –

point!ut#ref B referencia del punto decorte.

 – met(odB método del #ean que escuchael aspecto.

PaopBaspect idGL#eforeE6ampleL refGLa!eanL  PaopB#efore  pointcut5refGLdata3ccess(perationL  methodGLdo3ccess;heckLT  ...PTaopBaspect

pu#lic $oid do3ccess;heck')   M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 102/164

p g

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de advi!e

• After –

point!ut#ref B referencia del punto decorte.

 – met(odB método del #ean que escuchael aspecto.

PaopBaspect idGL#eforeE6ampleL refGLa!eanL  PaopBafter  pointcut5refGLdata3ccess(perationL  methodGLdo3ccess;heckLT  ...PTaopBaspect

pu#lic $oid do3ccess;heck')   M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 103/164

p g

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de advi!e

• After#returning –

point!ut#ref B referencia del punto decorte.

 – returningB o#&eto que retorna elmétodo interceptado.

 – met(odB método del #ean que escucha

el aspecto.

PaopBaspect idGL#eforeE6ampleL refGLa!eanL  PaopBafter5returning

  pointcut5refGLdata3ccess(perationK returningGKret@alV  methodGLdo3ccess;heckLT  ...PTaopBaspect

pu#lic $oid do3ccess;heck'(#&ect ret@al)   M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 104/164

p g

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de advi!e

• After#t(rowing –

point!ut#ref B referencia del punto decorte.

 – t(rowingB e6cepci%n que lan0a elmétodo interceptado.

 – met(odB método del #ean que escucha

el aspecto.

PaopBaspect idGL#eforeE6ampleL refGLa!eanL  PaopBafter5throwing

  pointcut5refGLdata3ccess(perationK throwingGKretE6ceptionV  methodGLdo3ccess;heckLT  ...PTaopBaspect

pu#lic $oid do3ccess;heck'E6ception retE6ception)   M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 105/164

p g

• Aspe!t Briented6rogramming @AB6 – De!lara!i-n de advi!e

• Around –

point!ut#ref B referencia del punto decorte.

 – met(odB método del #ean que escuchael aspecto.

PaopBaspect idGLaroundE6ampleL refGLa!eanL  PaopBaround  pointcut5refGL#usinessSer$iceL  methodGLdo!asicro/lingLT  ...

PTaopBaspect

puli! B4e!t doasi!6roling@6ro!eeding.oin6oint p4p t(rows <(rowaleH   // start stopwatch  (#&ect ret@al G p&p.proceed')N   // stop stopwatch  return ret8alIM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 106/164

p g

• Aspe!t Briented6rogramming @AB6 – Congura!i-n mediante

Anota!iones• tili:amos la !ongura!i-n ="L

• De!laramos el aspe!to.

package org.6y0N

import org.aspect&.lang.annotation.3spectN

Y3spectpu#lic class "ogging

M

PaopBaspect&5autopro6yT

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 107/164

p g

• Aspe!t Briented6rogramming @AB6 – Congura!i-n mediante

Anota!iones• De!laramos el punto de !ru!e.

package org.6y0N

import org.aspect&.lang.annotation.3spectN

Y3spectpu#lic class "ogging

Yointcut'Le6ecution'_ com.tutorialspoint._._'..))L)pri$ate $oid select3ll')M

M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 108/164

p g

• Aspe!t Briented6rogramming @AB6 – Congura!i-n mediante

Anota!iones• De!laramos el punto de !ru!e.

package org.6y0N

import org.aspect&.lang.annotation.3spectN

Y3spectpu#lic class "ogging

Yointcut'Le6ecution'_ com.tutorialspoint._._'..))L)pri$ate $oid select3ll')M

  Y!efore'Lselect3ll')L)

pu#lic $oid #efore3d$ice')System.out.println'LRoing to setup student pro/le.L)N

M

Y3fter'Lselect3ll')L)pu#lic $oid after3d$ice')

System.out.println'LStudent pro/le has #een setup.L)NM

M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 109/164

p g

• Aspe!t Briented6rogramming @AB6 – Congura!i-n mediante

Anota!iones• De!laramos advi!es.

package org.6y0N

import org.aspect&.lang.annotation.3spectN

Y3spectpu#lic class "ogging

Yointcut'Le6ecution'_ com.tutorialspoint._._'..))L)pri$ate $oid select3ll')M

  Y!efore'Lselect3ll')L)

pu#lic $oid #efore3d$ice')System.out.println'LRoing to setup student pro/le.L)N

M

Y3fter'Lselect3ll')L)pu#lic $oid after3d$ice')

System.out.println'LStudent pro/le has #een setup.L)NM

M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 110/164

p g

• Aspe!t Briented6rogramming @AB6 – Congura!i-n mediante

Anota!iones• De!laramos advi!es.

package org.6y0N

import org.aspect&.lang.annotation.3spectN

Y3spectpu#lic class "ogging

Yointcut'Le6ecution'_ com.tutorialspoint._._'..))L)pri$ate $oid select3ll')M

  Y3fter-eturning'pointcut G Lselect3ll')L returningGLret@alL)

pu#lic $oid after-eturning3d$ice'(#&ect ret@al)  System.out.println'L-eturningBL ` [email protected]') )N

Y3fterChrowing'pointcut G Lselect3ll')L throwing G Le6L)pu#lic $oid 3fterChrowing3d$ice'4llegal3rgumentE6ception e6)

System.out.println'LChere has #een an e6ceptionB L `e6.toString'))N

MM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 111/164

p g

• Data – Data A!!ess 6attern

• Es un patr%n que aisla la l%gicade #a&o ni$el del acceso a

datos de la l%gica de alto ni$eldel negocio.

• Este patr%n se #asa en el usode una interfa0 queproporciona los prototipos del;-O8.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 112/164

p g

• Data – Data A!!ess 6attern

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 113/164

p g

• Data – <ransa!!iones

• Ona transacci%n es uncon&unto de instrucciones que

se e&ecutan en #loque.• "as instrucciones de una

transacci%n se e&ecutan todas oninguna.

• ;uando una transacci%n terminase hace commit  so#re ella sifalla se hace rollback .

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 114/164

• Data – ACD) 6rin!ipios de

transa!!iones• At-mi!oB Codas las

operaciones en una transacci%nocurrir9 si la todas terminan sue&ecuci%n correctamente oninguna de ellas ocurrir9 si una

de estas falla en cuyo caso sedeshacen todos los cam#iosefectuados.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 115/164

• Data – ACD) 6rin!ipios de

transa!!iones• ConsistenteB ;uando termina

la transacci%n correcta oincorrectamente el sistema esde&ado en un estadoconsistente con el negocio quemodela.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 116/164

• Data – ACD) 6rin!ipios de

transa!!iones• Aislado) "as transacciones de#e

permitir a $arios usuarios tra#a&arcon los mismos datos sin que cadatra#a&o de un usuarios se enredecon el de los dem9s. or lo tantolas transacciones de#en ser aisladas

unas de las otras pre$iendo de estamanera la lectura yTo escrituraconcurrente de los datos.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 117/164

• Data – ACD) 6rin!ipios de

transa!!iones• DuraleB Ona $e0 que una

transacci%n concluye elresultado de una transacci%nde#e persistir y de#eso#re$i$ir a cualquier tipo defallo del sistema.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 118/164

• Data – <ransa!!iones en Spring

• Spring pro$ee soporte paraadministraci%n de

transacciones declarati$asy programa#les.

• Spring puede utili0ar elsoporte transaccional ofrecidopor el mecanismo depersistencia como J8!;i#ernate o J3.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 119/164

• Data – <ransa!!iones en Spring

• Si la aplicaci%n utili0a $ariosrecursos Spring soporta

transacciones distri#uidas 3utili0ando algunaimplementaci%n JC3 deterceros.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 120/164

• Data – <ransa!!iones

programJti!as• "a forma m9s adecuada de

implantar una transacci%nprogram9tica es medianteanotaciones.

• "a anotaci%n YCransactionalde#e ser u#icada en laca#ecera de un métodopA#lico.

YCransactionalpu#lic $oid e6ecCransaction')  M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 121/164

• Data – Kmito de una transa!!i-n

• Si tenemos un métodocon &<ransa!tional latransacci%n empe0ar9 en la primera

l2nea del método y terminar9 &ustodespués de la Altima.

• Si dentro de esto método e6istenllamadas a otros métodos estos

otros métodos son llamados dentrode la transacci%n sin necesidad deanotarlos con &<ransa!tional'

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 122/164

• Data – 6ropaga!i-n de una

transa!!i-n• Es la estrategia de

administraci%n de latransacci%n.

• or medio de esta estrategiase de/ne si la creaci%n de latransacci%n es autom9tica o seutili0ar9 alguna pre$iamentecreada.

YCransactional' propagation G ropagation.-EQO4-ESDEU )pu#lic $oid e6ecCransaction')   M

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 123/164

• Data – <ipos de propaga!i-n

• 6;B6A7A<BM;E0;ED 5 Es laque $iene por defecto as2 que no esnecesaria especi/carla. Si e6istetransacci%n la apro$echa y sino lacrea.

• ;E0;ESME> 5 3#re unatransacci%n nue$a y pone en

suspenso la anterior. Ona $e0 elmétodo marcado como-EQO4-ESDEU termina se $uel$e ala transacci%n anterior.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 124/164

• Data – <ipos de propaga!i-n

• 6;B6A7A<BMS66B;<S 5 Sie6iste transacci%n la apro$echa

sino no crea ninguna.• 6;B6A7A<BM"ADA<B;N  5 Si

no e6iste una transacci%n a#ierta selan0a una e6cepci%n. ay gente queanota sus 83( con esta opci%n.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 125/164

• Data – <ipos de propaga!i-n

• 6;B6A7A<BME8E; 5 Si e6isteuna transacci%n a#ierta se lan0auna e6cepci%n. Do se me ocurreningAn e&emplo donde esto seanecesario pero seguro que algunohay.

• 6;B6A7A<BMB<MS66B;<ED 5 Si e6iste una transacci%n la poneen suspenso la transacci%n sereacti$a al salir del método.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 126/164

• Data – Commit y ;olla!k 

• On método YCransactionalcuando termina todas sus

instrucciones culminahaciendo un commit.

• ;uando un métodoYCransactional falla lan0andouna e6cepci%n que hereda de-untimeE6ception se reali0aun roll#ack.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 127/164

• Data – Commit y ;olla!k 

• ay momentos que noqueremos que se haga

un rollback  para algunae6cepci%n en concreto o locontrario no queremos quehaga un commit  cuando se

lan0a una e6cepci%n que noherede de ;untimeE!eption

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 128/164

• Data – Commit y ;olla!k 

• ara esto tenemos laspropiedades no;olla!kFor y

rolla!kFor con estasopciones podemos con/gurarel commit  y el rollback  segAnnuestras necesidades.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 129/164

• Data – Commit y ;olla!k 

• no;olla!kFor

• rolla!kForYCransactional'roll#ackForGFileDotFoundE6ception.classM)pu#lic $oid ha03lgoCransaccionalmente')

  TT Soy transaccionalXM

YCransactional'no-oll#ackForGDum#erFormatE6ception.class3rithmeticE6ception.classM)pu#lic $oid ha03lgoCransaccionalmente')   TT Soy transaccionalXM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 130/164

• Data – <ransa!!iones de!larativas

• "as transacciones declarati$as sede#en con/gurar asociadas a unacone6i%n a la fuente de datos.

P#ean nameGLhi#ernateCemplateLclassGLorg.springframework.orm.hi#ernate7.i#ernateCemplateL  Pconstructor5arg refGLsessionFactoryLTPT#ean P#ean nameGLtransaction>anagerLclassGLorg.springframework.orm.hi#ernate7.i#ernateCransaction>anagerL  Pproperty nameGLdataSourceL refGLdataSourceL T  Pproperty nameGLsessionFactoryL refGLsessionFactoryL TPT#ean P#ean nameGLtransactionCemplateLclassGLorg.springframework.transaction.support.CransactionCemplateL  Pconstructor5arg refGLtransaction>anagerLTPT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 131/164

• Data – <ransa!!iones de!larativas

• "as transacciones declarati$as sede#en con/guran en #ase aaspectos.P?6ml $ersionGL1.,L encodingGLOCF5WL?

P#eans 6mlnsGLhttpBTTwww.springframework.orgTschemaT#eansL 6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL  6mlnsBt6GLhttpBTTwww.springframework.orgTschemaTt6L  6mlnsBaopGLhttpBTTwww.springframework.orgTschemaTaopL  6siBschema"ocationGLhttpBTTwww.springframework.orgTschemaT#eans httpBTTwww.springframework.orgTschemaT#eansTspring5#eans.6sd  httpBTTwww.springframework.orgTschemaTt6 httpBTTwww.springframework.orgTschemaTt6Tspring5t6.6sd  httpBTTwww.springframework.orgTschemaTaophttpBTTwww.springframework.orgTschemaTaopTspring5aop.6sdL 

PaopBcon/g

  PaopBad$isor pointcutGLe6ecution'pu#lic _ demo.dao._.create'..))L ad$ice5refGLt65ad$iceL T  PTaopBcon/g 

Pt6Bad$ice idGLt65ad$iceL  Pt6Battri#utes  Pt6Bmethod nameGL_L propagationGL-EQO4-E8L isolationGL8EF3O"CL roll#ack5forGLChrowa#leL no5roll#ack5forGL!usinessE6ceptionL T  Pt6Bmethod nameGLget_L propagationGLSO(-CSL read5onlyGLtrueL T  PTt6Battri#utes  PTt6Bad$ice 

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 132/164

• Data – <ransa!!iones de!larativas

• "as transacciones declarati$as sede#en con/guran en #ase aaspectos.P?6ml $ersionGL1.,L encodingGLOCF5WL?

P#eans 6mlnsGLhttpBTTwww.springframework.orgTschemaT#eansL 6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL  6mlnsBt6GLhttpBTTwww.springframework.orgTschemaTt6L  6mlnsBaopGLhttpBTTwww.springframework.orgTschemaTaopL  6siBschema"ocationGLhttpBTTwww.springframework.orgTschemaT#eans httpBTTwww.springframework.orgTschemaT#eansTspring5#eans.6sd  httpBTTwww.springframework.orgTschemaTt6 httpBTTwww.springframework.orgTschemaTt6Tspring5t6.6sd  httpBTTwww.springframework.orgTschemaTaophttpBTTwww.springframework.orgTschemaTaopTspring5aop.6sdL 

PaopBcon/g

  PaopBad$isor pointcutGLe6ecution'pu#lic _ demo.dao._.create'..))L ad$ice5refGLt65ad$iceL T  PTaopBcon/g 

Pt6Bad$ice idGLt65ad$iceL  Pt6Battri#utes  Pt6Bmethod nameGL_L propagationGL-EQO4-E8L isolationGL8EF3O"CL roll#ack5forGLChrowa#leL no5roll#ack5forGL!usinessE6ceptionL T  Pt6Bmethod nameGLget_L propagationGLSO(-CSL read5onlyGLtrueL T  PTt6Battri#utes  PTt6Bad$ice 

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 133/164

• Data – .DC <emplate

• Spring proporciona uncon&unto de funcionalidades

que facilitan el tra#a&o con J8!;.

• or medio de estasfuncionalidades podemostra#a&ar con la l%gica de #a&oni$el de #ase de datos deforma m9s sencilla.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 134/164

• Data – Congurando Data Sour!e

• or medio de la clase8ri$er>anager8ataSource

podemos instanciar undatasource estandar capa0 deconectarse a cualquier #ase dedatos.

P#ean idGLdataSourceLclassGLorg.springframework.&d#c.datasource.8ri$er>anager8ataSourceL

  Pproperty nameGLdri$er;lassDameL$alueGLcom.mysql.&d#c.8ri$erLT  Pproperty nameGLurlL$alueGL&d#cBmysqlBTTlocalhostB77,bTCESCLT  Pproperty nameGLusernameL $alueGLrootLT  Pproperty nameGLpasswordL $alueGLpasswordLTPT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 135/164

• Data – Congurando Data Sour!e

• or medio de la clase8ri$er>anager8ataSource

podemos instanciar undatasource estandar capa0 deconectarse a cualquier #ase dedatos.

P#ean idGLdataSourceLclassGLorg.springframework.&d#c.datasource.8ri$er>anager8ataSourceL

  Pproperty nameGLdri$er;lassDameL$alueGLcom.mysql.&d#c.8ri$erLT  Pproperty nameGLurlL$alueGL&d#cBmysqlBTTlocalhostB77,bTCESCLT  Pproperty nameGLusernameL $alueGLrootLT  Pproperty nameGLpasswordL $alueGLpasswordLTPT#ean

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 136/164

• Data – E4e!utando senten!ias

• Sentencia que retorna un enterolargo.

• Sentencia que retorna un entero.String SQ" G Lselect count'_) from StudentLNint row;ount G &d#cCemplate(#&ect.queryFor4nt' SQ" )N

String SQ" G Lselect count'_) from StudentLNlong row;ount G &d#cCemplate(#&ect.queryFor"ong' SQ" )N

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 137/164

• Data – E4e!utando senten!ias

• Sentencia din9mica conpar9metro.

• Sentencia din9mica con

par9metros de entrada y salida.

String SQ" G Lselect name from Student where id G ?LNString name G &d#cCemplate(#&ect.queryFor(#&ect'SQ" new (#&ectHI1,MString.class)N

String SQ" G Lselect age from Student where id G ?LNint age G &d#cCemplate(#&ect.queryFor4nt'SQ" new (#&ectHI1,M)N

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 138/164

• Data – E4e!utando senten!ias

• Sentencia que de$uel$e unregistro asociado a un #ean.

String SQ" G Lselect _ from Student where id G ?LNStudent student G &d#cCemplate(#&ect.queryFor(#&ect'SQ"  new (#&ectHI1,M new Student>apper'))Npu#lic class Student>apper implements -ow>apperPStudent   pu#lic Student map-ow'-esultSet rs int rowDum) throws SQ"E6ception   Student student G new Student')N  student.set48'rs.get4nt'LidL))N  student.setDame'rs.getString'LnameL))N  student.set3ge'rs.get4nt'LageL))N  return studentN

  MM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 139/164

• Data – E4e!utando senten!ias

• Sentencia que de$uel$e uncon&unto de registros asociado a

una lista de #eans.String SQ" G Lselect _ from StudentLN"istPStudent students G &d#cCemplate(#&ect.query'SQ"  new Student>apper'))Npu#lic class Student>apper implements -ow>apperPStudent   pu#lic Student map-ow'-esultSet rs int rowDum) throws SQ"E6ception   Student student G new Student')N  student.set48'rs.get4nt'LidL))N  student.setDame'rs.getString'LnameL))N  student.set3ge'rs.get4nt'LageL))N  return studentN

  MM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 140/164

• Data – E4e!utando senten!ias

• 4nsertar registro

• 3ctuali0ar registro

• Eliminar registro

String SQ" G Linsert into Student 'name age) $alues '? ?)LN &d#cCemplate(#&ect.update' SQ" new (#&ectHILaraL 11M )N

String SQ" G Lupdate Student set name G ? where id G ?LN &d#cCemplate(#&ect.update' SQ" new (#&ectHILaraL 1,M )N

String SQ" G Ldelete Student where id G ?LN &d#cCemplate(#&ect.update' SQ" new (#&ectHI+,M )N

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 141/164

• Data – E4e!utando senten!ias

• E&ecutar 88"

String SQ" G L;-E3CE C3!"E Student' L `  L48 4DC D(C DO"" 3OC(4D;-E>EDC L `  LD3>E @3-;3-'+,) D(C DO"" L `  L3RE 4DC D(C DO"" L `  L-4>3- E '48))NL &d#cCemplate(#&ect.e6ecute' SQ" )N

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 142/164

• 8istas – /0u1 es "8C2

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 143/164

• 8istas – "8C /0u1 es esto2

• Es un patr%n de dise*oorientado a aplicaciones con

interfa0 de usuario.• Su nom#re nace de las

iniciales de las pala#rasK>odelo @ista ;ontroladorV.

• Este patr%n esta orientadopara aplicaciones we#.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 144/164

• 8istas – "8C /0u1 es esto2

• Este patr%n #usca separar lasresponsa#ilidades de cada

capaB l%gica de negocio l%gicade presentaci%n de los datos yla integraci%n de estas capas.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 145/164

• 8istas – "8C) Con!eptos Jsi!os

• "odelo) Es la capa que atiende atoda la l%gica del negocio y losdatos del mismo.

• 8ista) Es la capa que controla ygestiona todo lo relati$o a lapresentaci%n de los datos alusuario.

• Controlador) Es la capa que seencarga de gestionar la interacci%nentre la $ista y el modelo.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 146/164

• Spring "8C – Es el m%dulo de Spring que da

soporte a un frameworkcompleto >@;.

 – Su componente principal es el8ispathSer$let que se encargade gestionar todas las

peticiones y respuestas CC.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 147/164

• Spring "8C – El Ue#3pplication;onte6t es la

implementaci%n del3pplication;onte6t que se usa

para Spring >@;.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 148/164

• Spring "8C – 6ro!essing 3<<6 ;e5uest

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 149/164

• Spring "8C – 6ro!essing 3<<6 ;e5uest

• 8espués reci#ir la petici%n el8ispatcherSer$let consulta

andler>apping para $er quecontroler puede atender lapetici%n.

• El controler #usca que método

puede atender a la petici%nCC. -etorna el nom#re de la$ista.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 150/164

• Spring "8C – 6ro!essing 3<<6 ;e5uest

• El 8ispatcherSer$let usa al@iew-esol$er para encontrar la

$ista asociado a el nom#repre$iamente o#tenido.

• Finalmente el 8ispatchSer$letpasa los datos o#tenidos del

modelo para que se rendericen &unto a la $ista.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 151/164

• Spring "8C – Congura!i-n oligatoria

• "a con/guraci%n de unaaplicaci%n we# esta en el

we#.6mlPwe#5app idGLUe#3pp48L $ersionGL+.:L  6mlnsGLhttpBTT&a$a.sun.comT6mlTnsT&+eeL  6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL  6siBschema"ocationGLhttpBTT&a$a.sun.comT6mlTnsT&+eehttpBTT&a$a.sun.comT6mlTnsT&+eeTwe#5app+:.6sdL

  Pdisplay5nameSpring >@; 3pplicationPTdisplay5name  OservletP  Oservlet#nameP3ello>eO*servlet#nameP  Oservlet#!lassP

  org'springframework'we'servlet'Dispat!(erServlet  O*servlet#!lassP  Oload#on#startupP$O*load#on#startupP  O*servletP  Pser$let5mapping  Pser$let5nameelloUe#PTser$let5name  Purl5pattern_.&spPTurl5pattern  PTser$let5mappingPTwe#5app

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 152/164

• Spring "8C – Congura!i-n oligatoria

• Se declara el 8ispatcherSer$letpara que se e&ecute al le$antar

el ser$idor.• Este componente $a a le$antar

el Ue#3pplication;onte6t conel /chero de con/guraci%n que

le indiquemos.• El /chero de con/guraci%n de#e

estar u#icado en UE!54DFT

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 153/164

• Spring "8C – Congura!i-n oligatoria

• odemos cam#iar la u#icaci%ndel /chero de con/guraci%n si

agregamos el;onte6t"oader"istener.Pwe#5app idGLUe#3pp48L $ersionGL+.:L  6mlnsGLhttpBTT&a$a.sun.comT6mlTnsT&+eeL  6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL  6siBschema"ocationGLhttpBTT&a$a.sun.comT6mlTnsT&+eehttpBTT&a$a.sun.comT6mlTnsT&+eeTwe#5app+:.6sdLO!ontet#paramP  Oparam#nameP!ontetCongLo!ationO*param#nameP

  Oparam#valueP*>E#F*appli!ation#!ong'mlO*param#valuePO*!ontet#paramPOlistenerP  Olistener#!lassP  org'springframework'we'!ontet'ContetLoaderListener  O*listener#!lassPO*listenerPPTwe#5app

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 154/164

• Spring "8C – Congura!i-n Spring

• El /chero de con/guraci%nSpring nos sir$e para enla0ar

todos los componentes y lasp9ginas.P#eans 6mlnsGLhttpBTTwww.springframework.orgTschemaT#eansL  mlns)!ontet(ttp)**www'springframework'org*s!(ema*!ontet  6mlnsB6siGLhttpBTTwww.w7.orgT+,,1T>"Schema5instanceL  6siBschema"ocationGL  httpBTTwww.springframework.orgTschemaT#eans

httpBTTwww.springframework.orgTschemaT#eansTspring5#eans57.,.6sd  httpBTTwww.springframework.orgTschemaTconte6t  httpBTTwww.springframework.orgTschemaTconte6tTspring5conte6t57.,.6sdL

  O!ontet)!omponent#s!an ase#pa!kageG!om'eample'Q *P  Oean!lassorg'springframework'we'servlet'view'nternal;esour!e8iew;esolverP  Oproperty namepre value*>E#F*4sp* *P  Oproperty namesuR value'4sp *P  O*eanP

PT#eans

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 155/164

• Spring "8C – Congura!i-n Spring

• Se de/ne el escaner decomponentes que instanciar9

a todos las clases con/guradascon anotaciones.

• Se con/gura el @iew-esol$erdonde indicamos el directorio

donde se encuentran lasp9ginas dinamicas y quee6tensi%n tienen.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 156/164

• Spring "8C – mplementando el

!ontrolador• "as anotaciones m9s

importantes en el controladorsonB Y;ontroller yY-equest>apping.&Controller&;e5uest"apping@*(ellopu#lic class ello;ontroller

  &;e5uest"apping@met(od ;e5uest"et(od'7E<

  pu#lic String printello'>odel>ap model)   model.add3ttri#ute'LmessageL Lello Spring >@; FrameworkXL)N  return LhelloLN  MM

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 157/164

• Spring "8C – mplementando el

!ontrolador• Y;ontroller de/ne el

componente como elcontrolador dentro del >@;.

• Y-equest>apping puedeenla0ar al controlador con unrecurso y cada método con unmétodo CC.

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 158/164

• Spring "8C – mplementando el

!ontrolador• ero Y-equest>apping tam#ién

pueden hacer que cada métodose asocie indi$idualmente acada recurso y método CC.

• "a enumeraci%n -equest>ethod

proporciona con/guraci%n paratodos los métodos CC 'REC(SC OC 8E"ECE )

Spring Framework

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 159/164

• Spring "8C – mplementando el

!ontrolador• "a clase >odel>ap es el medio

que disponemos con Spring>@; de en$iar los datos a la$ista.

• Dosotros de#emos retornar el

nom#re de la $ista quedeseamos presentar.

Spring Framework

i

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 160/164

• Spring "8C – mplementando el

!ontrolador• ;on la anotaci%n

Y-equestaram podemosasociar un par9metro de laO-" con un par9metro delmétodo.

&Controller&;e5uest"apping@*invoi!epu#lic class 4n$oice;ontroller

  &;e5uest"apping@met(od ;e5uest"et(od'7E<

  pu#lic String printello'&;e5uest6aram@Gid int id >odel>apmodel)   model.add3ttri#ute'Kin$oiceL o#&)N  return Kdetail5in$oiceLN  MM

Spring Framework

S i "8C

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 161/164

• Spring "8C – Creando la vista

• "as $istas pueden por defectoson JS pero Spring >@;

puede integrarse con JSFStruts y otros frameworks quedan soporte de $istas.Phtml  Phead  Ptitleello Spring >@;PTtitle  PThead  P#ody  Ph+THmessageUPTh+  PT#odyPThtml

Spring Framework

S i "8C

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 162/164

• Spring "8C – Creando la vista

• Codos los atri#utos queagregamos en la instancia de

>odel>ap podemos acceder aella con el lengua&e dee6presiones soportado.Phtml  Phead  Ptitleello Spring >@;PTtitle  PThead  P#ody  Ph+THmessageUPTh+  PT#odyPThtml

Spring Framework

S i "8C

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 163/164

• Spring "8C – ;ES<

7/17/2019 CursoSpring PRESENTACION

http://slidepdf.com/reader/full/cursospring-presentacion 164/164

• >uchas gracias