Bienvenida e Introducción

1

Qué aprenderás sobre Hibernate y Java Spring

2

Instalar ambiente de desarrollo en Windows

3

¿Qué es una Aplicación Empresarial?

4

¿Cómo funcionan las Aplicaciones Web?

5

Servidores Web vs Servidores de Aplicación

6

Instalar ambiente de desarrollo Mac

7

Patrón de Arquitectura MVC

8

Características de los Servlet

9

Utilización del Servlet

10

Características y práctica de JSP

Comenzar con Spring Boot

11

Arquitectura de las Aplicaciones Web

12

Características de Spring Framework

13

Características de Spring Boot

14

Crear, cargar y configurar una aplicación en Spring Boot

15

Crear la estructura del proyecto

Spring Data JPA

16

Persistencia de objetos

17

Spring Data, Spring Data JPA

18

Iniciar la base de datos postgres utilizando Docker

19

Optimizar Pojos con Lombok

20

Mapear Tablas de la Base de Datos

21

Configurar la persistencia con Hibernate

Manejo de Negocio

22

Añadir JPA Repository

23

Implementar las operaciones de Consulta con JPA Repository

24

Implementar servicio de negocio para las operaciones CRUD

25

Manejar la transaccionalidad de un servicio de negocio

Spring REST

26

Instalar y configurar Swagger

27

Características de los Servicios Web y Spring Rest

28

Implementar las operaciones REST para crear y actualizar información

29

Implementar las operaciones REST para eliminar y consultar información

30

Documentación de los servicios REST con Swagger

Spring Security

31

Manejar la seguridad en una aplicación web

32

Características, instalación e integración de Spring Security

33

Personalizar la página de Login

Despliegue Aplicaciones Docker

34

Realizar la configuración de Docker Plugin

35

Crear una imagen docker de la aplicación

36

Subir la aplicación a docker hub

37

Ejecutar la aplicación dockerizada

38

Despedida del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Hibernate y Java Spring 2018

Curso de Hibernate y Java Spring 2018

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Implementar servicio de negocio para las operaciones CRUD

24/38
Recursos

Seguimos trabajando en la parte de negocio, ahora que definimos nuestro repositorio, el siguiente paso la parte de servicios (con el paquete com.platzi.ereservation.negocio.service), vamos a trabajar algunas clases para exponer estas operaciones en la capa de negocio. Recuerda que debemos indicar que las clases son un bean de la capa de negocios utilizando la anotación @Service.

Aportes 22

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola Marco.
Tengo unas preguntas:
¿Porque no haces un Implements de la interfaz? Ó
¿Porque no instancias con @autowired?

Hola Marcos, como se realiza la gestión de errores en esta capa. Que pasaría si la información enviada a la base de datos genera un problema?

Estimado martosfre, cual es la mejor practica para instanciar el Repository? de igual forma se podría utilizar un Autowired, cierto?, por otro lado al respecto de los métodos create y update: no sería mejor dejar un solo método dado que en la implementación de ambos se llama al mismo método save?.
Agradezco tus comentarios. Saludos

Spring posee un contenedor de Beans, lo que hacen las anotaciones (@Service, @Component…) como tal es decirle a ese contenedor que guarde un Bean de esa clase para su uso mas adelante con la anotación @Autowired, lo anterior va directamente ligado a lo que se conoce como inyección de dependencias e inversión de control, la primera nos permite darle modularidad a nuestro código y la segunda es la manera en que Spring le quita el mando a Java de la creación de Objectos.

Hola, entiendo entonces que a su vez, desde un controlador de vista o Servlet, se define el servicio para poder acceder a las operaciones de la capa de negocio verdad?
Cómo sería la cuestión para definir un controlador que responda no precisamente a peticiones para renderizar en una vista, sino para que responda a llamadas REST y responder en JSON para el tema de un frontend desarrollado en Angular?
espero haber planteado bien la pregunta, de lo contrario no tengo problema en replantearlo dado el caso.
Saludos.

Hola Marco, pregunta.

Lo que explicas hasta el minuto 4:42 que usas el método save ya definido por herencia.

Cómo se podría hacer para implementar alguna validación del cliente? En qué capa se haría? Sobre escribimos el método save?

Excelente explicación.

Cuál es el atajo que utiliza para que salga el comentario de los métodos ?

POR EL AMOR DE DIOS! no es el “tema de save” no es un tema de, es un ME-TO-DO del paquete Repository, que nos ofrece Spring!, me esta costando demasiado trabajo identificar cada concepto con su nombre correspondiente y poder aprender a explicarme a mi mismo a que me estoy refiriendo cuando tenga que ejecutar lo aprendido, A TODOS los conceptos, los esta reemplazando con, EL TEMA DE!, esto no ayuda en absolutamente nada.

Hola, no me queda muy claro como hace para diferenciar una creación de un update si el método prácticamente es el mismo utiliza el objeto el repository y llama el mismo método heredado .save no comprado como hace para diferenciar las dos operaciones. gracias

Buena Explicacion.!!

excelente explicación!!!

Excelente clase Marco! Gracias por los tips del teclado que muchos no conocemos pero son tan útiles.

espera no entendi para que era el repositorio? para hacer consultas ?
el modelo es para crear la db y su estructura
el service para el crud y cualquier instruccion que sera usada desde front end?

Esta capa es la mas importante de implementar cuando se trata de proyectos grandes porque define la lógica del negocio.

Excelente curso

Super 😃 gracias

gracias de esta forma es más fácil implementar un servicio

Los metodos create y update, no es buena idea dejar solo uno ya que cuando tengamos nuestro proyecto en produccion y ocurra un problema al persistir los datos o actualizarlos no podremos identificar bien el problema, teniendo diferentes metodos podremos saber que operacion esta realizando el usuario.

@Service
Esta anotación se usa en una clase. @Service marca una clase Java que realiza algún servicio, como ejecutar lógica de negocios, realizar cálculos y llamar a API externas. Esta anotación es una forma especializada de la anotación **@Component **destinada a ser utilizada en la capa de servicio.

La arquitectura planteada en esta clase es una de las mejores que he visto, separar la especificación de consultas personalizadas en repositorios y luego consumirlas en los servicios, junto con los métodos CRUD implementados ya por el ORM queda muy organizado. También me ayudo a entender el enfoque de los repositorios que no lo tenía muy claro.