curso spring 3 + hibernate
DESCRIPTION
Curso de spring3, El código de acompañamiento está aca https://github.com/iamedu/SpringHibernateTRANSCRIPT
![Page 1: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/1.jpg)
Spring 3, Hibernate, Maven
Sistemas Humanos
![Page 2: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/2.jpg)
Maven•Sistema de Automatización•Construcción de proyectos•Prueba de proyectos•Manejo de dependencias•Plugins
![Page 3: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/3.jpg)
Spring•Spring es un framework Open Source•Creado por Rod Johnson (Export One-on-One J2EE Design and Development)•Un nuevo comienzo después del invierno de J2EE
![Page 4: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/4.jpg)
¿Por qué Spring?•Reducir la complejidad de J2EE•Spring usa POJOs (Plain Old Java Objects)•(Spring = Java Beans) !== EJB
![Page 5: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/5.jpg)
Características•NO intrusivo•Promover buen diseño•Fácilmente "probable"
![Page 6: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/6.jpg)
Características•Fácilmente configurable (XML, anotaciónes)•Spring ES un contenedor, administra el ciclo de vida de nuestros objetos.•Desacomplamiento por medio de IoC (Inversion of Control) y AOP (Aspect Oriented Programming)
![Page 7: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/7.jpg)
Inversion of Control
Main
Dependencias
Dependencias
Main
![Page 8: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/8.jpg)
Dependency Injection•Spring•Guice•PicoContainer•JSR 299 (Contexts and Dependency Injection for the Java EE Platform)
![Page 9: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/9.jpg)
AOPTrámi
teAlta Repor
te
Autorización
![Page 10: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/10.jpg)
Módulos de Spring
![Page 11: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/11.jpg)
Core Spring•Dependency Injection•JNDI•Scheduling•EJB
![Page 12: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/12.jpg)
Spring AOP•Aspectos de Spring•Desacomplar temas transversales
![Page 13: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/13.jpg)
Acceso a datos•Abstraer JDBC•JPA, JDO, iBatis, y Hibernate•JMS•Object to XML Mapping
![Page 14: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/14.jpg)
Web•Integracion con Servlets•Integración con Java Portlet API•RMI•Hessian•Burlap•JAX-WS•Spring HTTP-Invoker
![Page 15: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/15.jpg)
Testing•jUnit•Mockito•Acceso a datos•Transacciónes
![Page 16: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/16.jpg)
Spring Instrumentation
![Page 17: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/17.jpg)
Más alla de las bases•Spring Web Flow•Spring Web Services•Spring Security•Spring Integration•Spring Batch•Spring Social•Spring Mobile (Spring Android)
![Page 18: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/18.jpg)
Más allá de las bases•Spring Dynamic Modules•Spring LDAP•Spring Rich Client•Spring.NET•Spring Flex•Spring ROO
![Page 19: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/19.jpg)
Volviendo a la teoría...
![Page 20: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/20.jpg)
Contenedores de Spring•Bean Factory
•XmlBeanFactory•ApplicationContext (Ciclo de Vida)•FilesystemXmlApplicationContext•ClassPathXmlApplicationContext•WebXmlApplicationContext
![Page 21: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/21.jpg)
BeanFactory•Ambientes reducidos•Construye Beans•Inyecta Beans
![Page 22: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/22.jpg)
Application Context•BeanFactory +•Ciclo de vida•Eventos•BeanPostProcessor
![Page 23: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/23.jpg)
BeanPostProcessor
PostProcessor
PROXY
![Page 24: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/24.jpg)
Manejando la vida•init-method = InitializingBean•destroy-method = DisposableBean
![Page 25: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/25.jpg)
Scopes•Singleton, Prototype•Session, Request (Servlet)•GlobalSession (Portlets)
![Page 26: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/26.jpg)
Construyendo Beans•Constructor•Static Factory•Bean Factory
![Page 27: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/27.jpg)
Constructornew Bean(blah)
=
<bean id='mibean' class='Bean' />
![Page 28: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/28.jpg)
Static Factoryclass Static { public static Bean buildObject() { ... }}Static.buildObject()=<bean class="Static" factory-method="buildObject" />
![Page 29: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/29.jpg)
Bean Factoryclass Bean { public NewBean buildObject() { ... }}new Bean().buildObject() =<bean id='factoryBean' class='Bean' /><bean factory-bean="factoryBean" factory-method="buildObject" />
![Page 30: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/30.jpg)
Autowire•byName•byType•byConstructor•autodetect•byConstructor•byType
![Page 31: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/31.jpg)
¡Anotación!
![Page 32: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/32.jpg)
Autowire recargado•@Autowire•@Qualifier
![Page 33: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/33.jpg)
Autowire estandarizado•@Inject
•@Qualifier•@Named•Inyección de proveedores
![Page 34: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/34.jpg)
¿Inyección de proveedores?
![Page 35: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/35.jpg)
Component Lookup•@Component•@Scope•@Controller (WebMVC)•@Repository (DAO)•@Service = @Component (Facade)
![Page 36: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/36.jpg)
Java en vez de XML
![Page 37: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/37.jpg)
Simplificando (JMS)•JmsTemplate•Sin EJB•MessageCreator para generar mensajes.
![Page 38: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/38.jpg)
Acceso a DatosHibernate + JPA
![Page 39: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/39.jpg)
Persistencia en java•EJB•JDO•JPA
![Page 40: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/40.jpg)
JPA•JPA es un estándar•JPA sólo es la manera de llamar a...•Hibernate•TopLink•Kopo•OpenJPA
![Page 41: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/41.jpg)
Hibernate•JPA está basado en Hibernate•Lucene•Ehcaché
![Page 42: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/42.jpg)
Desventajas•No soporta queries nativos nombrados
![Page 43: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/43.jpg)
Entendiendo a JPAEntityManagerFacto
ry
EntityManager
Query Entity Transaction
![Page 44: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/44.jpg)
Configurando a JPA•META-INF/persistence.xml
![Page 45: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/45.jpg)
Configurando a JPA
![Page 46: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/46.jpg)
Entidades•@Entity•Ciclo de vida•No existe•Nuevo•Manejado•Eliminado•Separado
![Page 47: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/47.jpg)
Ciclo de vida•@PrePersist•@PostPersist•@PreLoad•@PostLoad•@PreRemove•@PostRemove
![Page 48: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/48.jpg)
Caché (ehcache)•Sobre las entidades anotadas con @Entity•@Cache(usage = CacheConcurrencyStrategy.•READ_WRITE•READ_ONLY•NONSTRICT_READ_WRITE
![Page 49: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/49.jpg)
ehcache + hibernatepropiedades de proveedor
en persistence.xml
![Page 50: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/50.jpg)
ehcache.xml
![Page 51: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/51.jpg)
Lucene + Hibernate Search•@Field =
@Indexed•@Boost
![Page 52: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/52.jpg)
persistence.xmlpropiedades de proveedor
en persistence.xml
![Page 53: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/53.jpg)
Indexando y Consultando
![Page 54: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/54.jpg)
De vuelta a Spring (MVC)
![Page 55: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/55.jpg)
Arquitectura
Dispatcher Servlet
HandlerMappin
g
View Resolve
r
Controller
![Page 56: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/56.jpg)
View Resolver•InternalResourceViewResolver•TilesViewResolver•JasperReportsViewResolver•VelocityViewResolver•FreeMarkerViewResolver
![Page 57: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/57.jpg)
HandlerMapping•SimpleUrlHandlerMapping•ControllerBeanNameHandlerMapping•<mvc:annotation-driven />
![Page 58: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/58.jpg)
RequestMapping•@RequestMapping•value={'/url/','/otra/url'}•method={RequestMethod.GET, RequestMethod.POST}
![Page 59: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/59.jpg)
Pasando Variables•@RequestParam(required=false)•@PathVariable + '/url/{var}'
![Page 60: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/60.jpg)
i18n•ResourceBundleMessageSource•CookieLocaleResolver•AcceptHeaderLocaleResolver
![Page 61: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/61.jpg)
Validación•@Valid•@Size•@Pattern
![Page 62: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/62.jpg)
Spring Security•auto-config!•authentication-manager•user-service•@Secured :)
![Page 63: Curso Spring 3 + Hibernate](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b4bdf14a795965718b4609/html5/thumbnails/63.jpg)
¡Gracias!