SlideShare una empresa de Scribd logo
Hands-on Sergi Almar i Graupera (sergi.almar@javahispano.org)‏ Erick Camacho  (ecamacho@javahispano.org)‏
Contenido Introducción a Spring Spring en la capa de datos: Spring JPA Gestión de transacciones Spring en la capa de servicios Spring en la capa web: SpringMVC SpringSecurity 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

Más contenido relacionado

DOCX
Bases de datos mysql y repotes usando jasper report
PPT
Adaptive Technology
PPT
Abuso Y Dependencia De Sustancias Um
PPT
Ludimila Aucar Filipe
PPS
Taller De Blogs
PPT
Devonte
PPS
Espejo
Bases de datos mysql y repotes usando jasper report
Adaptive Technology
Abuso Y Dependencia De Sustancias Um
Ludimila Aucar Filipe
Taller De Blogs
Devonte
Espejo

Similar a Hands on Spring 2.5 (20)

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

Más de Erick Camacho (11)

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

Último (20)

PDF
Diapositiva proyecto de vida, materia catedra
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Maste clas de estructura metálica y arquitectura
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPT
Que son las redes de computadores y sus partes
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
clase auditoria informatica 2025.........
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Presentación de Redes de Datos modelo osi
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PPT
introduccion a las_web en el 2025_mejoras.ppt
Diapositiva proyecto de vida, materia catedra
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Propuesta BKP servidores con Acronis1.pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Maste clas de estructura metálica y arquitectura
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Que son las redes de computadores y sus partes
REDES INFORMATICAS REDES INFORMATICAS.pptx
clase auditoria informatica 2025.........
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Presentación de Redes de Datos modelo osi
Plantilla para Diseño de Narrativas Transmedia.pdf
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
CyberOps Associate - Cisco Networking Academy
introduccion a las_web en el 2025_mejoras.ppt

Hands on Spring 2.5

  • 1. Hands-on Sergi Almar i Graupera (sergi.almar@javahispano.org)‏ Erick Camacho (ecamacho@javahispano.org)‏
  • 2. Contenido Introducción a Spring Spring en la capa de datos: Spring JPA Gestión de transacciones Spring en la capa de servicios Spring en la capa web: SpringMVC SpringSecurity Hands-on Spring 2.5
  • 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