Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Spring 3, Hibernate, Maven<br />Sistemas Humanos<br />
Maven<br /><ul><li>Sistema de Automatización
Construcción de proyectos
Prueba de proyectos
Manejo de dependencias
Plugins</li></li></ul><li>Spring<br /><ul><li>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 </li></li></ul><li>¿Por qué Spring?<br /><ul><li>Reducir la complejidad de ...
Spring usa POJOs (Plain Old Java Objects)
(Spring = Java Beans) !== EJB</li></li></ul><li>Características<br /><ul><li>NO intrusivo
Promover buen diseño
Fácilmente "probable"</li></li></ul><li>Características<br /><ul><li>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)</li></li></ul><li>Inversion o...
Dependency Injection<br /><ul><li>Spring
Guice
PicoContainer
JSR 299 (Contexts and Dependency Injection for the Java EE Platform)</li></li></ul><li>AOP<br />Trámite<br />Alta<br />Rep...
Módulos de Spring<br />
Core Spring<br /><ul><li>Dependency Injection
JNDI
Scheduling
EJB</li></li></ul><li>Spring AOP<br /><ul><li>Aspectos de Spring
Desacomplar temas transversales</li></li></ul><li>Acceso a datos<br /><ul><li>Abstraer JDBC
JPA, JDO, iBatis, y Hibernate
JMS
Object to XML Mapping</li></li></ul><li>Web<br /><ul><li>Integracion con Servlets
Integración con Java Portlet API
RMI
Hessian
Burlap
JAX-WS
Spring HTTP-Invoker</li></li></ul><li>Testing<br /><ul><li>jUnit
Mockito
Acceso a datos
Transacciónes</li></li></ul><li>Spring Instrumentation<br />
Más alla de las bases<br /><ul><li>Spring Web Flow
Spring Web Services
Spring Security
Spring Integration
Spring Batch
Spring Social
Spring Mobile (Spring Android)</li></li></ul><li>Más allá de las bases<br /><ul><li>Spring Dynamic Modules
Spring LDAP
Spring Rich Client
Spring.NET
Spring Flex
Spring ROO</li></li></ul><li>Volviendo a la teoría...<br />
Contenedores de Spring<br /><ul><li>Bean Factory
XmlBeanFactory
ApplicationContext (Ciclo de Vida)
FilesystemXmlApplicationContext
ClassPathXmlApplicationContext
WebXmlApplicationContext</li></li></ul><li>BeanFactory<br /><ul><li>Ambientes reducidos
Construye Beans
Inyecta Beans</li></li></ul><li>Application Context<br /><ul><li>BeanFactory +
Ciclo de vida
Eventos
BeanPostProcessor</li></li></ul><li>BeanPostProcessor<br />PROXY<br />Post<br />Processor<br />
Manejando la vida<br /><ul><li>init-method = InitializingBean
destroy-method = DisposableBean</li></li></ul><li>Scopes<br /><ul><li>Singleton, Prototype
Session, Request (Servlet)
GlobalSession (Portlets)</li></li></ul><li>Construyendo Beans<br /><ul><li>Constructor
Upcoming SlideShare
Loading in …5
×

Curso Spring 3 + Hibernate

3,505 views

Published on

Curso de spring3, El código de acompañamiento está aca https://github.com/iamedu/SpringHibernate

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

Curso Spring 3 + Hibernate

  1. 1. Spring 3, Hibernate, Maven<br />Sistemas Humanos<br />
  2. 2. Maven<br /><ul><li>Sistema de Automatización
  3. 3. Construcción de proyectos
  4. 4. Prueba de proyectos
  5. 5. Manejo de dependencias
  6. 6. Plugins</li></li></ul><li>Spring<br /><ul><li>Spring es un framework Open Source
  7. 7. Creado por Rod Johnson (Export One-on-One J2EE Design and Development)
  8. 8. Un nuevo comienzo después del invierno de J2EE </li></li></ul><li>¿Por qué Spring?<br /><ul><li>Reducir la complejidad de J2EE
  9. 9. Spring usa POJOs (Plain Old Java Objects)
  10. 10. (Spring = Java Beans) !== EJB</li></li></ul><li>Características<br /><ul><li>NO intrusivo
  11. 11. Promover buen diseño
  12. 12. Fácilmente "probable"</li></li></ul><li>Características<br /><ul><li>Fácilmente configurable (XML, anotaciónes)
  13. 13. Spring ES un contenedor, administra el ciclo de vida de nuestros objetos.
  14. 14. Desacomplamiento por medio de IoC (Inversion of Control) y AOP (Aspect Oriented Programming)</li></li></ul><li>Inversion of Control<br />Main<br />Dependencias<br />Main<br />Dependencias<br />
  15. 15. Dependency Injection<br /><ul><li>Spring
  16. 16. Guice
  17. 17. PicoContainer
  18. 18. JSR 299 (Contexts and Dependency Injection for the Java EE Platform)</li></li></ul><li>AOP<br />Trámite<br />Alta<br />Reporte<br />Autorización<br />
  19. 19. Módulos de Spring<br />
  20. 20. Core Spring<br /><ul><li>Dependency Injection
  21. 21. JNDI
  22. 22. Scheduling
  23. 23. EJB</li></li></ul><li>Spring AOP<br /><ul><li>Aspectos de Spring
  24. 24. Desacomplar temas transversales</li></li></ul><li>Acceso a datos<br /><ul><li>Abstraer JDBC
  25. 25. JPA, JDO, iBatis, y Hibernate
  26. 26. JMS
  27. 27. Object to XML Mapping</li></li></ul><li>Web<br /><ul><li>Integracion con Servlets
  28. 28. Integración con Java Portlet API
  29. 29. RMI
  30. 30. Hessian
  31. 31. Burlap
  32. 32. JAX-WS
  33. 33. Spring HTTP-Invoker</li></li></ul><li>Testing<br /><ul><li>jUnit
  34. 34. Mockito
  35. 35. Acceso a datos
  36. 36. Transacciónes</li></li></ul><li>Spring Instrumentation<br />
  37. 37. Más alla de las bases<br /><ul><li>Spring Web Flow
  38. 38. Spring Web Services
  39. 39. Spring Security
  40. 40. Spring Integration
  41. 41. Spring Batch
  42. 42. Spring Social
  43. 43. Spring Mobile (Spring Android)</li></li></ul><li>Más allá de las bases<br /><ul><li>Spring Dynamic Modules
  44. 44. Spring LDAP
  45. 45. Spring Rich Client
  46. 46. Spring.NET
  47. 47. Spring Flex
  48. 48. Spring ROO</li></li></ul><li>Volviendo a la teoría...<br />
  49. 49. Contenedores de Spring<br /><ul><li>Bean Factory
  50. 50. XmlBeanFactory
  51. 51. ApplicationContext (Ciclo de Vida)
  52. 52. FilesystemXmlApplicationContext
  53. 53. ClassPathXmlApplicationContext
  54. 54. WebXmlApplicationContext</li></li></ul><li>BeanFactory<br /><ul><li>Ambientes reducidos
  55. 55. Construye Beans
  56. 56. Inyecta Beans</li></li></ul><li>Application Context<br /><ul><li>BeanFactory +
  57. 57. Ciclo de vida
  58. 58. Eventos
  59. 59. BeanPostProcessor</li></li></ul><li>BeanPostProcessor<br />PROXY<br />Post<br />Processor<br />
  60. 60. Manejando la vida<br /><ul><li>init-method = InitializingBean
  61. 61. destroy-method = DisposableBean</li></li></ul><li>Scopes<br /><ul><li>Singleton, Prototype
  62. 62. Session, Request (Servlet)
  63. 63. GlobalSession (Portlets)</li></li></ul><li>Construyendo Beans<br /><ul><li>Constructor
  64. 64. Static Factory
  65. 65. Bean Factory</li></li></ul><li>Constructor<br />new Bean(blah)<br />=<br /><bean id='mibean' class='Bean' /><br />
  66. 66. Static Factory<br />class Static {<br /> public static Bean buildObject() {<br /> ...<br /> }<br />}<br />Static.buildObject()<br />=<br /><bean class="Static" factory-method="buildObject" /><br />
  67. 67. Bean Factory<br />class Bean {<br /> public NewBean buildObject() {<br /> ...<br /> }<br />}<br />new Bean().buildObject() =<br /><bean id='factoryBean' class='Bean' /><br /><bean factory-bean="factoryBean" factory-method="buildObject" /><br />
  68. 68. Autowire<br /><ul><li>byName
  69. 69. byType
  70. 70. byConstructor
  71. 71. autodetect
  72. 72. byConstructor
  73. 73. byType</li></li></ul><li>¡Anotación!<br />
  74. 74. Autowire recargado<br /><ul><li>@Autowire
  75. 75. @Qualifier</li></li></ul><li>Autowire estandarizado<br /><ul><li>@Inject
  76. 76. @Qualifier
  77. 77. @Named
  78. 78. Inyección de proveedores</li></li></ul><li>¿Inyección de proveedores?<br />
  79. 79. Component Lookup<br /><ul><li>@Component
  80. 80. @Scope
  81. 81. @Controller (WebMVC)
  82. 82. @Repository (DAO)
  83. 83. @Service = @Component (Facade)</li></li></ul><li>Java en vez de XML<br />
  84. 84. Simplificando (JMS)<br /><ul><li>JmsTemplate
  85. 85. Sin EJB
  86. 86. MessageCreator para generar mensajes.</li></li></ul><li>Acceso a Datos<br />Hibernate + JPA<br />
  87. 87. Persistencia en java<br /><ul><li>EJB
  88. 88. JDO
  89. 89. JPA</li></li></ul><li>JPA<br /><ul><li>JPA es un estándar
  90. 90. JPA sólo es la manera de llamar a...
  91. 91. Hibernate
  92. 92. TopLink
  93. 93. Kopo
  94. 94. OpenJPA</li></li></ul><li>Hibernate<br /><ul><li>JPA está basado en Hibernate
  95. 95. Lucene
  96. 96. Ehcaché</li></li></ul><li>Desventajas<br /><ul><li>No soporta queries nativos nombrados</li></li></ul><li>Entendiendo a JPA<br />EntityManagerFactory<br />EntityManager<br />Entity Transaction<br />Query<br />
  97. 97. Configurando a JPA<br /><ul><li>META-INF/persistence.xml</li></li></ul><li>Configurando a JPA<br />
  98. 98. Entidades<br /><ul><li>@Entity
  99. 99. Ciclo de vida
  100. 100. No existe
  101. 101. Nuevo
  102. 102. Manejado
  103. 103. Eliminado
  104. 104. Separado</li></li></ul><li>Ciclo de vida<br /><ul><li>@PrePersist
  105. 105. @PostPersist
  106. 106. @PreLoad
  107. 107. @PostLoad
  108. 108. @PreRemove
  109. 109. @PostRemove</li></li></ul><li>Caché (ehcache)<br /><ul><li>Sobre las entidades anotadas con @Entity
  110. 110. @Cache(usage = CacheConcurrencyStrategy.
  111. 111. READ_WRITE
  112. 112. READ_ONLY
  113. 113. NONSTRICT_READ_WRITE</li></li></ul><li>ehcache + hibernate<br />propiedades de proveedor en <br />persistence.xml<br />
  114. 114. ehcache.xml<br />
  115. 115. Lucene + Hibernate Search<br /><ul><li>@Field = @Indexed
  116. 116. @Boost</li></li></ul><li>persistence.xml<br />propiedades de proveedor en <br />persistence.xml<br />
  117. 117. Indexando y Consultando<br />
  118. 118. De vuelta a Spring (MVC)<br />
  119. 119. Arquitectura<br />Dispatcher Servlet<br />View Resolver<br />Handler<br />Mapping<br />Controller<br />
  120. 120. View Resolver<br /><ul><li>InternalResourceViewResolver
  121. 121. TilesViewResolver
  122. 122. JasperReportsViewResolver
  123. 123. VelocityViewResolver
  124. 124. FreeMarkerViewResolver</li></li></ul><li>HandlerMapping<br /><ul><li>SimpleUrlHandlerMapping
  125. 125. ControllerBeanNameHandlerMapping
  126. 126. <mvc:annotation-driven /></li></li></ul><li>RequestMapping<br /><ul><li>@RequestMapping
  127. 127. value={'/url/','/otra/url'}
  128. 128. method={RequestMethod.GET, RequestMethod.POST}</li></li></ul><li>Pasando Variables<br /><ul><li>@RequestParam(required=false)
  129. 129. @PathVariable + '/url/{var}'</li></li></ul><li>i18n<br /><ul><li>ResourceBundleMessageSource
  130. 130. CookieLocaleResolver
  131. 131. AcceptHeaderLocaleResolver</li></li></ul><li>Validación<br /><ul><li>@Valid
  132. 132. @Size
  133. 133. @Pattern</li></li></ul><li>Spring Security<br /><ul><li>auto-config!
  134. 134. authentication-manager
  135. 135. user-service
  136. 136. @Secured :)</li></li></ul><li>¡Gracias!<br />

×