Spring Boot 3: Guía de Microservicios
2:36:26
Пікірлер
@geritodepalermohollywood
@geritodepalermohollywood Сағат бұрын
Buenas Santi, antes que nada, gracias por compartir tu sabiduría. Consejito que me seria de muchísima ayuda y tal vez ayude mucho a la comunidad java spring boot, podrías hacer un video de manejando excepciones de Spring Security haciendo un Custom Authentication Entry Point? Como capturar esas excepciones del Security Filter Chain y administrarlas en un RestControllerAdvice, estaría bueno tener una clase de esta índole explicada por ti ya que lo haces muy bien. Saludos!!
@aftershocks9572
@aftershocks9572 6 сағат бұрын
muchas gracias por el video , me gustaria compartirte un proyecto que es un mini ecoomers el problema esta a la hora de querer desplegarlo en render siempre falla y no se porque he pasada varios dias investigando y no doy con la solucion
@unprogramadornace
@unprogramadornace 4 сағат бұрын
Hola, debes revisar los logs y verificar cuál es el error, siempre que tengas problemas debes revisar los logs porque no hay otra forma de encontrar el error. ¡Saludos!
10 сағат бұрын
con la forma 2 no se pierden las bondades de abstracción de base de datos? al ser una query native depende ya del motor de base de datos usado. La forma 3 me parece la más correcta y si la forma 1 horrenda ya que no sabes que esta haciendo tienes que ir a ver la entidad.
@unprogramadornace
@unprogramadornace 9 сағат бұрын
Hola, con la forma #2 no se pierden las bondades que nos brinda JPA, al fin y al cabo JPA sigue siendo la herramienta que maneja las consultas incluso si manejamos SQL nativo, claro que obviamente debemos tener en cuenta la sintaxis del motor, pero no lo veo tan crítico. Diría que son solo diferentes formas de trabajar para llegar a hacer lo mismo ¿Cual debes usar? La que mejor se acomode a lo que tú quieres hacer, las más fácil y por supuesto la que más te guste. ¡Saludos!
11 сағат бұрын
24:55 ya ven porque no usar chat gpt 😅 tan fácil aprender cron, mejor aprender cron. Por lo demás todo bien y muchas gracias por tus videos
@unprogramadornace
@unprogramadornace 11 сағат бұрын
Hola, gracias por tu comentario. El enlace al minuto del vídeo que quieres mostrarnos está fallando, me gustaría que pudieras arreglarlo para apreciar mejor tú observación. ¡Saludos!
@facundomartinez615
@facundomartinez615 11 сағат бұрын
Gracias san, son súper útiles las tareas yo las utilice para controlar turnos asignados que después de x hora tenía que ser dados de baja. Rescató el consejo de que los errores se pagan con plata y tiempo.
@juandcg0331
@juandcg0331 12 сағат бұрын
Re buenooo
@andruy
@andruy 13 сағат бұрын
Santi veo que creaste la clase con el método para el ejemplo pero no vi en que momento creaste el objeto para llamar dicho método. Como funciona eso?? Excelente contenido! Muchas gracias por compartir.
@user-bx9uo4fu9q
@user-bx9uo4fu9q 12 сағат бұрын
Es gracias a la anotación scheduled, si tienes un metodo que elimina registros en la dB y quieres que lo haga cada cierto tiempo, le agregas la anotación y este se ejecutará, no necesitas instanciarlo spring se hace cargo internamente
@andruy
@andruy 12 сағат бұрын
@@user-bx9uo4fu9q ah mira que interesante! Gracias 🙏
@unprogramadornace
@unprogramadornace 11 сағат бұрын
Hola, el compañero tiene razón, al definir la clase con un @Component estamos registrando el objeto como un bean dentro del contenedor de Spring, con ello conseguimos que sea spring quien instancie el objeto y posteriormente llame al método anotado con @Sheduled. ¡Saludos!
@gustavoluna4575
@gustavoluna4575 13 сағат бұрын
Excelente video, gracias ✨🫡
@Camilo36697
@Camilo36697 13 сағат бұрын
Muchas gracias por este video! preciso estaba necesitando esto xD
@ottonlucena1295
@ottonlucena1295 13 сағат бұрын
Excelente video profe muchas gracias por todo su tiempo🙏. Me regala algún ejemplo en la vida real donde aplicaría todo esto? Aún no me cierra la idea jeje. Saludos desde Chile!!
@unomaxs1103
@unomaxs1103 13 сағат бұрын
un ejemplo seria que se a las 6 de la tarde el codigo ejecute un scheduling donde los registros de citas asignadas se guarden en una db
@unprogramadornace
@unprogramadornace 11 сағат бұрын
Hola, hay muchos casos diferentes en los que esto puede aplicar. Ejemplo: 1) Envío de notificaciones: Debes enviar notificaciones, alertas, facturas o mensajes cada días, cada mes, etc. 2) Trabajé en una aplicación que cada 1 minuto debía revisar una carpeta para revisar si habían archivos de Excel, si lo encontraba entonces debía insertarlos en la base de datos. Como estos hay muchos ejemplos y esto se usa bastante. ¡Saludos!
@ottonlucena1295
@ottonlucena1295 10 сағат бұрын
@@unprogramadornace muchas gracias profe, saludos
@cristianandresblandonguzma4669
@cristianandresblandonguzma4669 14 сағат бұрын
Gracias Santi, preciso debo hacer algo con tareas programadas
@fabriziofarfan927
@fabriziofarfan927 14 сағат бұрын
Capo capo capooo
@jesusbautista9258
@jesusbautista9258 Күн бұрын
Muchas gracias por el video. Me surgió una duda, por qué se utiliza DAO y Repository al mismo tiempo? No es redundante crear un DAO sobre un Repository?
@unprogramadornace
@unprogramadornace 15 сағат бұрын
Hola, no necesariamente es redundante aunque puede parecer que sí, lo que hice fue agregarle una capa más de abstracción para desacoplar aún más la funcionalidad de conexión a base de datos, a veces es útil, otras veces no, pero todo depende de la funcionalidad que se quiera dar. ¡Saludos!
@IsaiasVillarrealRubio-um9ct
@IsaiasVillarrealRubio-um9ct Күн бұрын
Mejor explicado imposiblee muachas gracias, no pensé que fuera tan fácil
@subarubrz331
@subarubrz331 Күн бұрын
excelente te amo mucho
@subarubrz331
@subarubrz331 2 күн бұрын
que ia usaste? o que programa es
@unprogramadornace
@unprogramadornace 2 күн бұрын
Midjourney con capcut.
@subarubrz331
@subarubrz331 2 күн бұрын
me encanta tu canal te amo
@camelalejandro
@camelalejandro 3 күн бұрын
Gracias, profe. Agradecería la aplicación con el front-end
@boniatorelleno
@boniatorelleno 3 күн бұрын
Nunca suelo comentar pero necesito decirte que tu canal vale oro, acabo de empezar con Spring Security y todo lo que sé es gracias a ti. Muchas gracias por compartir contenido de tanta calidad de forma gratuita n.n
@unprogramadornace
@unprogramadornace 3 күн бұрын
Muchas gracias por tu comentario. Me alegra saber que mi contenido te ha ayudado a avanzar. ¡Saludos!
@BryanVanegas-k6c
@BryanVanegas-k6c 3 күн бұрын
como se puede realizar lo mismo con outlook aunque envie las contraseñas y correo correcto siempre me dice que falla la autenticacion, realizando la configuracion correcta de para el otro servidor
@unprogramadornace
@unprogramadornace 3 күн бұрын
Hola, para ello debes revisar la documentación de Microsoft sobre como configurar Outlook y generar las llaves de conexión. ¡Saludos!
@thomasortuzar1376
@thomasortuzar1376 3 күн бұрын
Excelente vídeo muy claro y didáctico. Tienes alguna configuración en tu intellij que te permita ver las descripciones de lo que hace cada campo en las notaciones? Por que en mi ide (intellij) solo veo las notaciones, no hay ningún tipo de comentario
@unprogramadornace
@unprogramadornace 3 күн бұрын
Hola, tienes que descargar los recursos. Cuando abres una clase, en la parte superior te aparece un mensaje en el que te dice si quieres descargar los recursos, con eso logras descargar la documentación. ¡Saludos!
@danielaescobar497
@danielaescobar497 3 күн бұрын
Gracias por el tutorial!!
@edudomato
@edudomato 3 күн бұрын
No visualizo el momento en que mapeas el Entity Student con el StudentDTO, lo hace el framework automaticamente al tener el mismo prefijo?
@unprogramadornace
@unprogramadornace 3 күн бұрын
Hola, no lo hago directamente sino que dejo que Spring convierta los dos tipos de datos por debajo. ¡Saludos!
@edudomato
@edudomato 3 күн бұрын
Gracias!!
@jasiescobar107
@jasiescobar107 4 күн бұрын
Este cabrón se la rifa enseñando de todo.
@Jefwoi
@Jefwoi 4 күн бұрын
El proceso seria el mismo si uso Rancher?
@unprogramadornace
@unprogramadornace 4 күн бұрын
Hola, nunca he usado rancher así que no sabría responder esa pregunta. ¡Saludos!
@agustingomez9521
@agustingomez9521 4 күн бұрын
En caso que el usuario tenga mas datos en la base de datos, como el email o alguna fecha hace falta pasarlo al User de SpringSecurity? O para el proceso de autenticación y autorización no lo requiere?
@unprogramadornace
@unprogramadornace 4 күн бұрын
Hola, el user de spring security no maneja ninguno de esos datos adicionales. ¡Saludos!
@angelaguero
@angelaguero 4 күн бұрын
¡Excelente video! Me encantaría ver un contenido que integre Spring Boot con HTMX. ¡Sería muy interesante!
@xdxiag
@xdxiag 4 күн бұрын
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect Tanbien funciona asi se evita el psso de crear el dialect
@pierocahunapalomino8062
@pierocahunapalomino8062 5 күн бұрын
Muchas gracias por tu aporte. fue sencillo de entender.
@franconoce1055
@franconoce1055 5 күн бұрын
Muchas gracias, no se entendio para que se hicieron los permisos finalmente, no se usaron
@unprogramadornace
@unprogramadornace 5 күн бұрын
Hola, claro que sí se usaron. Te doy un ejemplo: Minuto: 01:59:00 Allí establecimos las políticas de permisos. ¡Saludos!
@angelojeda5756
@angelojeda5756 5 күн бұрын
Clase magistral
@brayancalderon1253
@brayancalderon1253 5 күн бұрын
Gracias, confirmo que se utiliza en la industria!
@erikantony9990
@erikantony9990 6 күн бұрын
gracias Santiago haces excelentes videos sigue asi y otra vez gracias por apoyar a la comunidad quizás mas adelante puedas hacer alguno que llegue por mensaje de texto o wtsap
@DavidHernandez-xf5oj
@DavidHernandez-xf5oj 6 күн бұрын
Un programador nace - Maestro muchas gracias por este tipo de contenidos. Me ha servido para fortalecer conocimiento sobre el lenguaje y la tecnologia. Por cierto les comparto el EndPoint que hizo falta en el eejmplo solo faltaba mandarlo llamar y listo: @GetMapping("/findByRange/{min}/{max}") public ResponseEntity<?> findByRange(@PathVariable BigDecimal min, @PathVariable BigDecimal max) { if( min.compareTo(new BigDecimal(0)) <= 0 || max.compareTo(new BigDecimal(0)) <= 0 ){ return ResponseEntity.badRequest().build(); } List<ProductDto> productDtoList = productService.findByPriceInRange(min, max) .stream() .map(product -> ProductDto.builder() .id(product.getId()) .name(product.getName()) .price(product.getPrice()) .maker(product.getMaker()) .build()). toList(); return ResponseEntity.ok(productDtoList); } Saludos!
@deibysierramonrroy5341
@deibysierramonrroy5341 6 күн бұрын
Santi !! Que teso muchas gracias me darías un ejemplo cuando retorna un cursor ?
@unprogramadornace
@unprogramadornace 5 күн бұрын
Hola, no entiendo a que te refieres con retornar un cursor, la verdad no entendí. ¡Saludos!
@deibysierramonrroy5341
@deibysierramonrroy5341 4 күн бұрын
@@unprogramadornace En Oracle se retorna valores que se pueden simular como una lista pero el tipo de dato es OracleTypes.CURSOR
@unprogramadornace
@unprogramadornace 4 күн бұрын
​@@deibysierramonrroy5341Nunca he trabajado con ese tipo de dato en Oracle. No sabría responderte.
@joseacosta7125
@joseacosta7125 6 күн бұрын
Gracias, super el contenido.
@sebastianavila7955
@sebastianavila7955 6 күн бұрын
Excelente video, era justo lo que necesitaba, en lo personal me gusta utilizar la anotación @Query, pero quede con la duda, ¿Qué pasa cuando un procedimiento devuelve un valor dependiendo de lo que hizo? Por ejemplo si encontró registros que haga un return 1 y si no un return 0 ¿Cómo podría capturar el valor que devuelve en una variable desde spring boot? Nuevamente excelente contenido
@unprogramadornace
@unprogramadornace 6 күн бұрын
Hola, es muy simple. Si tú procedimiento almacenado devuelve 0 o 1 igual ambos son números, capturas la respuesta con un Integer o un Long y validar cual es la respuesta. Ahora sí puede devolver respuestas diferentes entonces te toca combinar lógica en Spring con la consulta de tu SP para manejar la respuesta en los diferentes casos y crear objetos acordes a esas respuestas. ¡Saludos!
@sebastianavila7955
@sebastianavila7955 4 күн бұрын
@@unprogramadornace muchas gracias 😁
@grabieldelanieved.380
@grabieldelanieved.380 6 күн бұрын
Usted no se imagina profesor lo mucho que nos ayuda con estos videos ✨
@unprogramadornace
@unprogramadornace 6 күн бұрын
Me alegra saber que mi contenido es de ayuda para ustedes. ¡Saludos!
@SoyJavero
@SoyJavero 6 күн бұрын
Hjajajajajajaj bro no trabajarás donde yo? Justamente estamos viendo cómo hacer esto me cayó al anillo al dedo
@unprogramadornace
@unprogramadornace 6 күн бұрын
Jajaj! Entonces disfrútalo. ¡Saludos!
@hugocolinmiranda8915
@hugocolinmiranda8915 6 күн бұрын
Y si se necesita mapear el resultado del sp a un dto?
@unprogramadornace
@unprogramadornace 6 күн бұрын
Hola, ahí estás incurriendo en una muy mala práctica, tú no puedes conectar un DTO con una base de datos, para eso son los entities, después de obtener el Entity lo conviertes a DTO. Esa es la forma correcta de trabajar. ¡Saludos!
@hugocolinmiranda8915
@hugocolinmiranda8915 6 күн бұрын
@@unprogramadornace me refiero a que si hay sp algo complejos, que hace joins y puede traer uno o varios registros, algo tedioso de hacer con jpa. Cómo sería ese caso?
@SoyJavero
@SoyJavero 6 күн бұрын
@@hugocolinmiranda8915es lo mismo que quiero saber. Como utilizar puramente jpa para que el servicio haga el trabajo y no la base. En ese caso habría que definir que tan compleja debe ser la query con jpa para mejor decidir usar procedimientos almacenados
@unprogramadornace
@unprogramadornace 6 күн бұрын
Todo gira alrededor de la respuesta que quieras dar, los atributos que vaya a regresar el SP son los atributos que debes mapear en tu Entity. ¡Saludos!
@Oscp-technology
@Oscp-technology 6 күн бұрын
Gracias santiago por el aporte. Me gusto mucho la forma 4 me parece más limpia para trabajar saludos..
@ivanetinajero
@ivanetinajero 6 күн бұрын
Como siempre excelente explicacion y muy profesional. Yo siempre habia usado la forma mas fea porque pensaba que era la unica. Desde ahora actualizare mi codigo.
@moisesvillalba6615
@moisesvillalba6615 6 күн бұрын
Muchas gracias colega
@ronaldgarciavazquez8232
@ronaldgarciavazquez8232 6 күн бұрын
Muchas gracias Santi
@alesolano8676
@alesolano8676 6 күн бұрын
La forma 4 se me hace más práctica
@unprogramadornace
@unprogramadornace 6 күн бұрын
Estoy completamente de acuerdo contigo. La 4 es mi favorita. ¡Saludos!