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!!
@aftershocks95726 сағат бұрын
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
@unprogramadornace4 сағат бұрын
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.
@unprogramadornace9 сағат бұрын
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
@unprogramadornace11 сағат бұрын
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!
@facundomartinez61511 сағат бұрын
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.
@juandcg033112 сағат бұрын
Re buenooo
@andruy13 сағат бұрын
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-bx9uo4fu9q12 сағат бұрын
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
@andruy12 сағат бұрын
@@user-bx9uo4fu9q ah mira que interesante! Gracias 🙏
@unprogramadornace11 сағат бұрын
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!
@gustavoluna457513 сағат бұрын
Excelente video, gracias ✨🫡
@Camilo3669713 сағат бұрын
Muchas gracias por este video! preciso estaba necesitando esto xD
@ottonlucena129513 сағат бұрын
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!!
@unomaxs110313 сағат бұрын
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
@unprogramadornace11 сағат бұрын
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!
@ottonlucena129510 сағат бұрын
@@unprogramadornace muchas gracias profe, saludos
@cristianandresblandonguzma466914 сағат бұрын
Gracias Santi, preciso debo hacer algo con tareas programadas
@fabriziofarfan92714 сағат бұрын
Capo capo capooo
@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?
@unprogramadornace15 сағат бұрын
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Күн бұрын
Mejor explicado imposiblee muachas gracias, no pensé que fuera tan fácil
@subarubrz331Күн бұрын
excelente te amo mucho
@subarubrz3312 күн бұрын
que ia usaste? o que programa es
@unprogramadornace2 күн бұрын
Midjourney con capcut.
@subarubrz3312 күн бұрын
me encanta tu canal te amo
@camelalejandro3 күн бұрын
Gracias, profe. Agradecería la aplicación con el front-end
@boniatorelleno3 күн бұрын
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
@unprogramadornace3 күн бұрын
Muchas gracias por tu comentario. Me alegra saber que mi contenido te ha ayudado a avanzar. ¡Saludos!
@BryanVanegas-k6c3 күн бұрын
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
@unprogramadornace3 күн бұрын
Hola, para ello debes revisar la documentación de Microsoft sobre como configurar Outlook y generar las llaves de conexión. ¡Saludos!
@thomasortuzar13763 күн бұрын
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
@unprogramadornace3 күн бұрын
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!
@danielaescobar4973 күн бұрын
Gracias por el tutorial!!
@edudomato3 күн бұрын
No visualizo el momento en que mapeas el Entity Student con el StudentDTO, lo hace el framework automaticamente al tener el mismo prefijo?
@unprogramadornace3 күн бұрын
Hola, no lo hago directamente sino que dejo que Spring convierta los dos tipos de datos por debajo. ¡Saludos!
@edudomato3 күн бұрын
Gracias!!
@jasiescobar1074 күн бұрын
Este cabrón se la rifa enseñando de todo.
@Jefwoi4 күн бұрын
El proceso seria el mismo si uso Rancher?
@unprogramadornace4 күн бұрын
Hola, nunca he usado rancher así que no sabría responder esa pregunta. ¡Saludos!
@agustingomez95214 күн бұрын
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?
@unprogramadornace4 күн бұрын
Hola, el user de spring security no maneja ninguno de esos datos adicionales. ¡Saludos!
@angelaguero4 күн бұрын
¡Excelente video! Me encantaría ver un contenido que integre Spring Boot con HTMX. ¡Sería muy interesante!
@xdxiag4 күн бұрын
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect Tanbien funciona asi se evita el psso de crear el dialect
@pierocahunapalomino80625 күн бұрын
Muchas gracias por tu aporte. fue sencillo de entender.
@franconoce10555 күн бұрын
Muchas gracias, no se entendio para que se hicieron los permisos finalmente, no se usaron
@unprogramadornace5 күн бұрын
Hola, claro que sí se usaron. Te doy un ejemplo: Minuto: 01:59:00 Allí establecimos las políticas de permisos. ¡Saludos!
@angelojeda57565 күн бұрын
Clase magistral
@brayancalderon12535 күн бұрын
Gracias, confirmo que se utiliza en la industria!
@erikantony99906 күн бұрын
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-xf5oj6 күн бұрын
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!
@deibysierramonrroy53416 күн бұрын
Santi !! Que teso muchas gracias me darías un ejemplo cuando retorna un cursor ?
@unprogramadornace5 күн бұрын
Hola, no entiendo a que te refieres con retornar un cursor, la verdad no entendí. ¡Saludos!
@deibysierramonrroy53414 күн бұрын
@@unprogramadornace En Oracle se retorna valores que se pueden simular como una lista pero el tipo de dato es OracleTypes.CURSOR
@unprogramadornace4 күн бұрын
@@deibysierramonrroy5341Nunca he trabajado con ese tipo de dato en Oracle. No sabría responderte.
@joseacosta71256 күн бұрын
Gracias, super el contenido.
@sebastianavila79556 күн бұрын
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
@unprogramadornace6 күн бұрын
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!
@sebastianavila79554 күн бұрын
@@unprogramadornace muchas gracias 😁
@grabieldelanieved.3806 күн бұрын
Usted no se imagina profesor lo mucho que nos ayuda con estos videos ✨
@unprogramadornace6 күн бұрын
Me alegra saber que mi contenido es de ayuda para ustedes. ¡Saludos!
@SoyJavero6 күн бұрын
Hjajajajajajaj bro no trabajarás donde yo? Justamente estamos viendo cómo hacer esto me cayó al anillo al dedo
@unprogramadornace6 күн бұрын
Jajaj! Entonces disfrútalo. ¡Saludos!
@hugocolinmiranda89156 күн бұрын
Y si se necesita mapear el resultado del sp a un dto?
@unprogramadornace6 күн бұрын
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!
@hugocolinmiranda89156 күн бұрын
@@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?
@SoyJavero6 күн бұрын
@@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
@unprogramadornace6 күн бұрын
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-technology6 күн бұрын
Gracias santiago por el aporte. Me gusto mucho la forma 4 me parece más limpia para trabajar saludos..
@ivanetinajero6 күн бұрын
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.
@moisesvillalba66156 күн бұрын
Muchas gracias colega
@ronaldgarciavazquez82326 күн бұрын
Muchas gracias Santi
@alesolano86766 күн бұрын
La forma 4 se me hace más práctica
@unprogramadornace6 күн бұрын
Estoy completamente de acuerdo contigo. La 4 es mi favorita. ¡Saludos!