SlideShare uma empresa Scribd logo
1 de 32
Hands-on Sergi Almar i Graupera (sergi.almar@javahispano.org)‏ Erick Camacho  (ecamacho@javahispano.org)‏
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Hands-on Spring 2.5
Java JDK 5 o superior Eclipse 3.3 (Europa)‏ Herramientas Hands-on Spring 2.5
Es un  contenedor ligero  de  inversión de control  (IOC). Contenedor de POJOs: BeanFactory y ApplicationContext IOC: Inyección de dependencias ¿Qué es Spring? Hands-on Spring 2.5 Hands-on Spring 2.5
¿Qué es Spring? II Diseño modular y extensible Hands-on Spring 2.5
¿Qué es Spring? III Integración con otras tecnologías. “ Spring should not compete with good existing solutions,  but should foster integration”. (Spring no debe competir con soluciones buenas existentes,  sino buscar la integración)‏ misión de Spring JDBC JPA Hibernate iBatis TopLink Quartz Struts JSF WebServices JTA LDAP Hands-on Spring 2.5
El application Context: La piedra de toque < beans  xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi = &quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation = &quot;http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; > < bean  id = &quot;mibean&quot;  class = &quot;com.mipaquete.MiClase&quot;  /> </beans> Hands-on Spring 2.5
Anotaciones - @Autowired @Qualifier - @Resource, @PostConstruct, @PostDestruct - @Configurable <context:load-time-weaver aspectj-weaving=&quot;on&quot;/> - Stereotypes  @Component (@Controller, @Service, @Repository...)‏ - @Transactional Hands-on Spring 2.5
Spring JPA Integración transparente Inyección del EntityManager gestionado por Spring Nuevo en 2.5: @Repository Hands-on Spring 2.5
Spring Transacciones Capa de abstracción para uniformizar el uso de  transacciones con muchas tecnologías  como JTA, JXTA, JDBC, etc. Declarativa en el XML o mediante anotaciones Hands-on Spring 2.5
Spring MVC: DispatcherServlet Hands-on Spring 2.5
ApplicationContext Hands-on Spring 2.5
Beans especiales - Controladores - HandlerMappings - View resolvers - LocaleResolver - ThemeResolver - MultipartFileResolver Hands-on Spring 2.5
Jerarquia  controladores Hands-on Spring 2.5
public class  UsuarioController  extends  MultiActionController { public  ModelAndView listar(HttpServletRequest req, HttpServletResponse res) {...} public  ModelAndView buscar(HttpServletRequest req, HttpServletResponse res) {...} public  ModelAndView mostrar(HttpServletRequest req, HttpServletResponse res) {...} } Ejemplo Spring 2.0 Hands-on Spring 2.5
Spring MVC 2.5 simplifica la programación de  Controladores - Anotaciones - Convention-over-configuration Spring MVC 2.5 Hands-on Spring 2.5
- Nuevo model de controlador “multi-action”  basado en POJO - Ya no es necesario extender de clases específicas  del framework - Mapear URLs a métodos usando anotaciones @Controller Hands-on Spring 2.5
@Controller public class  UsuarioController { @RequestMapping public void  listar() {...} @RequestMapping public void  buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void  mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Ejemplo @Controller Hands-on Spring 2.5
@RequestMapping - Mapea las peticiones  - Diferentes estratégias para mapear - Simple - Relativo al nombre del controlador - Externalizado - Basado en convención (recomendado)‏ -  Hands-on Spring 2.5
@RequestMapping - Simple @Controller public class  UsuarioController { @RequestMapping( “/usuario/listar” )‏ public void  listar() {...} @RequestMapping( “/usuario/buscar” )‏ public void  buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping( “/usuario/mostrar” )‏ public void  mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
@RequestMapping – Relativo controlador @Controller @RequestMapping( “/usuario/*” )‏ public class  UsuarioController { @RequestMapping public void  listar() {...} @RequestMapping public void  buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void  mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
@RequestMapping – Externalizado @Controller public class  UsuarioController { @RequestMapping public void  listar() {...} @RequestMapping public void  buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void  mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } <bean class=“...SimpleUrlHandlerMapping”> <property name=&quot;mappings&quot;> <value>   /usuario/*=usuarioController </value> </property> </bean> Hands-on Spring 2.5
@RequestMapping – Convención <bean   class =“...ControllerClassNameUrlHandlerMapping”  /> @Controller public class  UsuarioController { @RequestMapping public void  listar() {...} @RequestMapping public void  buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void  mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
Binding -Simple @RequestMapping public void  mostrar( @RequestParam ( &quot;id&quot; ) Long id) {...} Hands-on Spring 2.5
@RequestMapping public void  foo(HttpServletRequest req, ...) {...} @RequestMapping public void  foo(HttpServletResponse res, ...) {...} @RequestMapping public void  foo(HttpSession session, ...) {...} @RequestMapping public void  foo(Locale locale, ...) {...} @RequestMapping public void  foo(Principal principal, ...) {...} Parámetros especiales Hands-on Spring 2.5
Seleccionar vistas Dos técnicas: - Por convención @Controller public class  UsuarioController {   @RequestMapping   public void  listar() {...} } - Nombre de vista en String @Controller public class  UsuarioController {   @RequestMapping   public  String  listar() {  return   “/usuario/listar” ; } } Hands-on Spring 2.5
Exponer objectos del modelo Dos técnicas: - Devolver un único objecto (no String; recomendado para casos simples)‏ - Declarar un Modelo y añadir parámetros (más flexible)  Hands-on Spring 2.5
@RequestMapping public   List<Usuario>  buscar(SearchCriteria criteria) {...} - El parámetro se expone en usuarioList -  @RequestMapping public   @ModelAttribute( “usuarios” )   List<Usuario>  buscar(SearchCriteria criteria) {...} Devolver un Objeto Hands-on Spring 2.5
@RequestMapping public   void  buscar(SearchCriteria criteria, Model model) { List<Usuario> usuarios = usuarioServicice.getUsuarios(criteria); model.addObject(“usuarios”, usuarios); } Añadir al modelo Hands-on Spring 2.5
Exportar @Controllers Dos técnicas: - Definición del bean explícito <bean   class = “...SimpleUrlHandlerMapping” >   <property name=&quot;mappings&quot;> <value>   /usuario/*=usuarioController   </value> </property> </bean> <bean  id =“ usuarioController ”  class = “...UsuarioController”  /> - Classpath scanning <context:annotation-config />   <context:component-scan   base-package = ”com.mycompany.app” /> Hands-on Spring 2.5
Form  • JA-SIG CAS •  Basic  • JOSSO •  JDBC  • SiteMinder •  LDAP  • Atlassian Crowd •  NTLM  • OpenID •  Containers • X.509 •  JAAS  • Digest Métodos de autenticación Hands-on Spring 2.5
GRACIAS!! Hands-on Spring 2.5

Mais conteúdo relacionado

Semelhante a Hands on Spring 2.5

Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generationSergi Almar i Graupera
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006Samuel Marrero
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametroskenixxx
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netAntonio Palomares Sender
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gioRobert Wolf
 
Manual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiManual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiKarina Villavicencio
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gioRobert Wolf
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAbimael Desales López
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionDavid Vaquero
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasAnder Martinez
 

Semelhante a Hands on Spring 2.5 (20)

Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
01 introducción
01 introducción01 introducción
01 introducción
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametros
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Ajax
AjaxAjax
Ajax
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Clase_MVC_I.pptx
Clase_MVC_I.pptxClase_MVC_I.pptx
Clase_MVC_I.pptx
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Charla
CharlaCharla
Charla
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Manual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web iiManual desarrollo de aplicaciones web ii
Manual desarrollo de aplicaciones web ii
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 Introduccion
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. Migas
 

Mais de Erick Camacho

Modelos de Concurrencia
Modelos de ConcurrenciaModelos de Concurrencia
Modelos de ConcurrenciaErick Camacho
 
Desarrollo de apps para AppleWatch con Watchkit
Desarrollo de apps para AppleWatch con WatchkitDesarrollo de apps para AppleWatch con Watchkit
Desarrollo de apps para AppleWatch con WatchkitErick Camacho
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-CErick Camacho
 
Porque debes de renunciar a tu empleo y desarrollar para iOS
Porque debes de renunciar a tu empleo y desarrollar para iOSPorque debes de renunciar a tu empleo y desarrollar para iOS
Porque debes de renunciar a tu empleo y desarrollar para iOSErick Camacho
 
CocoaHeads México: Introducción a CocoaTouch:UIKit
CocoaHeads México: Introducción a CocoaTouch:UIKitCocoaHeads México: Introducción a CocoaTouch:UIKit
CocoaHeads México: Introducción a CocoaTouch:UIKitErick Camacho
 
Lo que no te han contado sobre el desarrollo para iPhone/iPad
Lo que no te han contado sobre el desarrollo para iPhone/iPadLo que no te han contado sobre el desarrollo para iPhone/iPad
Lo que no te han contado sobre el desarrollo para iPhone/iPadErick Camacho
 
Ecosistemas software para Flex
Ecosistemas software para FlexEcosistemas software para Flex
Ecosistemas software para FlexErick Camacho
 
Mejorando el País mediante Código
Mejorando el País mediante CódigoMejorando el País mediante Código
Mejorando el País mediante CódigoErick Camacho
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBErick Camacho
 
Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4Erick Camacho
 

Mais de Erick Camacho (11)

Modelos de Concurrencia
Modelos de ConcurrenciaModelos de Concurrencia
Modelos de Concurrencia
 
Realm para iOS
Realm para iOSRealm para iOS
Realm para iOS
 
Desarrollo de apps para AppleWatch con Watchkit
Desarrollo de apps para AppleWatch con WatchkitDesarrollo de apps para AppleWatch con Watchkit
Desarrollo de apps para AppleWatch con Watchkit
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-C
 
Porque debes de renunciar a tu empleo y desarrollar para iOS
Porque debes de renunciar a tu empleo y desarrollar para iOSPorque debes de renunciar a tu empleo y desarrollar para iOS
Porque debes de renunciar a tu empleo y desarrollar para iOS
 
CocoaHeads México: Introducción a CocoaTouch:UIKit
CocoaHeads México: Introducción a CocoaTouch:UIKitCocoaHeads México: Introducción a CocoaTouch:UIKit
CocoaHeads México: Introducción a CocoaTouch:UIKit
 
Lo que no te han contado sobre el desarrollo para iPhone/iPad
Lo que no te han contado sobre el desarrollo para iPhone/iPadLo que no te han contado sobre el desarrollo para iPhone/iPad
Lo que no te han contado sobre el desarrollo para iPhone/iPad
 
Ecosistemas software para Flex
Ecosistemas software para FlexEcosistemas software para Flex
Ecosistemas software para Flex
 
Mejorando el País mediante Código
Mejorando el País mediante CódigoMejorando el País mediante Código
Mejorando el País mediante Código
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 
Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 

Último (12)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Hands on Spring 2.5

  • 1. Hands-on Sergi Almar i Graupera (sergi.almar@javahispano.org)‏ Erick Camacho (ecamacho@javahispano.org)‏
  • 2.
  • 3. Java JDK 5 o superior Eclipse 3.3 (Europa)‏ Herramientas Hands-on Spring 2.5
  • 4. Es un contenedor ligero de inversión de control (IOC). Contenedor de POJOs: BeanFactory y ApplicationContext IOC: Inyección de dependencias ¿Qué es Spring? Hands-on Spring 2.5 Hands-on Spring 2.5
  • 5. ¿Qué es Spring? II Diseño modular y extensible Hands-on Spring 2.5
  • 6. ¿Qué es Spring? III Integración con otras tecnologías. “ Spring should not compete with good existing solutions, but should foster integration”. (Spring no debe competir con soluciones buenas existentes, sino buscar la integración)‏ misión de Spring JDBC JPA Hibernate iBatis TopLink Quartz Struts JSF WebServices JTA LDAP Hands-on Spring 2.5
  • 7. El application Context: La piedra de toque < beans xmlns = &quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi = &quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation = &quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; > < bean id = &quot;mibean&quot; class = &quot;com.mipaquete.MiClase&quot; /> </beans> Hands-on Spring 2.5
  • 8. Anotaciones - @Autowired @Qualifier - @Resource, @PostConstruct, @PostDestruct - @Configurable <context:load-time-weaver aspectj-weaving=&quot;on&quot;/> - Stereotypes @Component (@Controller, @Service, @Repository...)‏ - @Transactional Hands-on Spring 2.5
  • 9. Spring JPA Integración transparente Inyección del EntityManager gestionado por Spring Nuevo en 2.5: @Repository Hands-on Spring 2.5
  • 10. Spring Transacciones Capa de abstracción para uniformizar el uso de transacciones con muchas tecnologías como JTA, JXTA, JDBC, etc. Declarativa en el XML o mediante anotaciones Hands-on Spring 2.5
  • 11. Spring MVC: DispatcherServlet Hands-on Spring 2.5
  • 13. Beans especiales - Controladores - HandlerMappings - View resolvers - LocaleResolver - ThemeResolver - MultipartFileResolver Hands-on Spring 2.5
  • 14. Jerarquia controladores Hands-on Spring 2.5
  • 15. public class UsuarioController extends MultiActionController { public ModelAndView listar(HttpServletRequest req, HttpServletResponse res) {...} public ModelAndView buscar(HttpServletRequest req, HttpServletResponse res) {...} public ModelAndView mostrar(HttpServletRequest req, HttpServletResponse res) {...} } Ejemplo Spring 2.0 Hands-on Spring 2.5
  • 16. Spring MVC 2.5 simplifica la programación de Controladores - Anotaciones - Convention-over-configuration Spring MVC 2.5 Hands-on Spring 2.5
  • 17. - Nuevo model de controlador “multi-action” basado en POJO - Ya no es necesario extender de clases específicas del framework - Mapear URLs a métodos usando anotaciones @Controller Hands-on Spring 2.5
  • 18. @Controller public class UsuarioController { @RequestMapping public void listar() {...} @RequestMapping public void buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Ejemplo @Controller Hands-on Spring 2.5
  • 19. @RequestMapping - Mapea las peticiones - Diferentes estratégias para mapear - Simple - Relativo al nombre del controlador - Externalizado - Basado en convención (recomendado)‏ - Hands-on Spring 2.5
  • 20. @RequestMapping - Simple @Controller public class UsuarioController { @RequestMapping( “/usuario/listar” )‏ public void listar() {...} @RequestMapping( “/usuario/buscar” )‏ public void buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping( “/usuario/mostrar” )‏ public void mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
  • 21. @RequestMapping – Relativo controlador @Controller @RequestMapping( “/usuario/*” )‏ public class UsuarioController { @RequestMapping public void listar() {...} @RequestMapping public void buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
  • 22. @RequestMapping – Externalizado @Controller public class UsuarioController { @RequestMapping public void listar() {...} @RequestMapping public void buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } <bean class=“...SimpleUrlHandlerMapping”> <property name=&quot;mappings&quot;> <value> /usuario/*=usuarioController </value> </property> </bean> Hands-on Spring 2.5
  • 23. @RequestMapping – Convención <bean class =“...ControllerClassNameUrlHandlerMapping” /> @Controller public class UsuarioController { @RequestMapping public void listar() {...} @RequestMapping public void buscar(SearchCriteria criteria, BindingResult result) {...} @RequestMapping public void mostrar(@RequestParam(&quot;id&quot;) Long id) {...} } Hands-on Spring 2.5
  • 24. Binding -Simple @RequestMapping public void mostrar( @RequestParam ( &quot;id&quot; ) Long id) {...} Hands-on Spring 2.5
  • 25. @RequestMapping public void foo(HttpServletRequest req, ...) {...} @RequestMapping public void foo(HttpServletResponse res, ...) {...} @RequestMapping public void foo(HttpSession session, ...) {...} @RequestMapping public void foo(Locale locale, ...) {...} @RequestMapping public void foo(Principal principal, ...) {...} Parámetros especiales Hands-on Spring 2.5
  • 26. Seleccionar vistas Dos técnicas: - Por convención @Controller public class UsuarioController { @RequestMapping public void listar() {...} } - Nombre de vista en String @Controller public class UsuarioController { @RequestMapping public String listar() { return “/usuario/listar” ; } } Hands-on Spring 2.5
  • 27. Exponer objectos del modelo Dos técnicas: - Devolver un único objecto (no String; recomendado para casos simples)‏ - Declarar un Modelo y añadir parámetros (más flexible) Hands-on Spring 2.5
  • 28. @RequestMapping public List<Usuario> buscar(SearchCriteria criteria) {...} - El parámetro se expone en usuarioList - @RequestMapping public @ModelAttribute( “usuarios” ) List<Usuario> buscar(SearchCriteria criteria) {...} Devolver un Objeto Hands-on Spring 2.5
  • 29. @RequestMapping public void buscar(SearchCriteria criteria, Model model) { List<Usuario> usuarios = usuarioServicice.getUsuarios(criteria); model.addObject(“usuarios”, usuarios); } Añadir al modelo Hands-on Spring 2.5
  • 30. Exportar @Controllers Dos técnicas: - Definición del bean explícito <bean class = “...SimpleUrlHandlerMapping” > <property name=&quot;mappings&quot;> <value> /usuario/*=usuarioController </value> </property> </bean> <bean id =“ usuarioController ” class = “...UsuarioController” /> - Classpath scanning <context:annotation-config /> <context:component-scan base-package = ”com.mycompany.app” /> Hands-on Spring 2.5
  • 31. Form • JA-SIG CAS • Basic • JOSSO • JDBC • SiteMinder • LDAP • Atlassian Crowd • NTLM • OpenID • Containers • X.509 • JAAS • Digest Métodos de autenticación Hands-on Spring 2.5