Curso de programación reactiva en Java con Spring WebFlux y Project Reactor

Sdílet
Vložit
  • čas přidán 5. 08. 2024
  • Bienvenidos al mejor curso gratuito para aprender programación reactiva en Java desde cero mediante múltiples prácticas y ejercicios guiados y propuestos . En este curso aprenderás a construir aplicaciones reactivas sin bloqueo y asíncronas con Spring Framework 5, WebFlux y Project Reactor .
    📚 Contenido del curso 📚
    00:00:00 - Introducción al curso
    00:03:06 - Inicia tu carrera en CJava Perú
    00:04:23 - Conceptos fundamentales de la programación reactiva
    00:40:17 - Patrón de diseño Observable
    00:44:07 - Ejemplos prácticos de Flux y Mono
    01:32:33 - Uso de StepVerifier
    02:07:05 - Manejo de la contrapresión
    02:17:33 - Transformación y combinación de flujos
    03:10:37 - Manejo de excepciones en Project Reactor
    03:27:17 - Ejemplo de Thymeleaf reactivo con Spring WebFlux
    03:56:19 - Hot y Cold Publishers en Project Reactor
    04:11:17 - API REST con Spring WebFlux basado en anotaciones
    04:27:20 - API REST usando Functional Endpoint
    04:48:57 - API REST reactiva con MongoDB
    05:59:04 - Pruebas con StepVerifier y WebTestClient
    06:39:15 - CJava Perú tu mejor opción
    06:40:15 - Fin del curso
    Descarga el código fuente : github.com/ChristianRaulRamir...
    ⭐ Redes sociales
    ► Instagram : / christian_ramireezz
    ► Grupo de facebook : / 1708922592652065
    ► Facebook personal : profile.php?...
    ⭐Donaciones⭐
    ► BCP Soles : 19496393486055
    ► PayPal : www.paypal.com/paypalme/InfoL...
    ► Yape : +51 999 509 829
    ¿A quién va dirigido?
    - Estudiantes de desarrollo de software
    - Profesionales de desarrollo de software
    - Docentes de desarrollo de software
    - Apasionados por la tecnología Java
    Empieza tu carrera en CJava Perú :
    ► Sitio web : cjavaperu.com/
    ► Cursos : cjavaperu.com/cursos/
    ► Facebook : / cjava.peru.1
    Redes sociales :
    ► Facebook : / tecnologicsiempre
    Cursos recomendados :
    🔴 Desarrollo de servicios REST en Spring Boot : bit.ly/3JdyRDv
    🔴 Pruebas unitarias con JUnit y Mockito : bit.ly/3KpgvAI
    🔴 Desarrollo web en Spring Boot y Angular : bit.ly/3QiaIzY
    🔴 Desarrollo web en Spring Boot con Thymeleaf : bit.ly/3v4am6u
    #springboot
    #java
    #projectreactor
    #springframework
    #programacion
  • Věda a technologie

Komentáře • 95

  • @latecnologiaavanza
    @latecnologiaavanza  Před rokem +8

    ⭐ Redes sociales
    ► Instagram : instagram.com/christian_ramireezz/
    ► Grupo de facebook : facebook.com/groups/1708922592652065
    ► Facebook personal : facebook.com/profile.php?id=100025894471693
    ⭐ ¿Te gustaría que este contenido siga siendo gratuito?, puedes apoyar al canal con una donación ⭐
    ► BCP Soles : 19496393486055
    ► PayPal : www.paypal.com/paypalme/InfoLibros
    ► Yape : +51 999 509 829
    Empieza tu carrera en CJava Perú :
    🔴Somos la membresía que tiene beneficios y descuentos💳 en CJava.
    📕📗📘📙Completa al máximo tus conocimiento en un solo pago📕📗📘📙
    ✅Acceso a Charlas, Workshop, Cursos online y virtuales.
    ✅Constancias accesibles para todos los miembros.
    ✅Certifícate como un programador completo.
    ✅Bolsa de trabajo.
    ✅Asesoría personalizadas
    ✅y más
    🟥No es un SUPER PACK, es una membresía 🧾
    🟥Ahorra tiempo y dinero con la mejor opción pensada en ti
    🟥Forma parte de comunidad más grande de Java.
    Si llegaste hasta Aquí, pues se vendrá otra GRAN SORPRESA sobre las membresías🤫, ingresa al enlace para ser el primer en enterarte.
    ✅Mayor información aquí⬇⬇⬇
    Escríbenos a nuestro WhatsApp 📲 wa.me/51932656459
    Visita nuestra página web
    www.cjavaperu.com
    En CJava ofrecemos asesoría y capacitación a empresas que están desarrollando aplicaciones o van a iniciar con tecnología Java.
    CJava Perú siempre para apoyarte.🖥
    No olvides suscribirte al canal y compartir los cursos ❤
    czcams.com/channels/agvJNIAARwhy3AVXlcoqZA.html
    Déjanos en la casilla de comentarios que cursos le gustarían ;)

  • @Ronrook9
    @Ronrook9 Před 5 měsíci

    Muchas gracias por compartir tu conocimiento, eres un crack

  • @JorgeEduardo-xr4gg
    @JorgeEduardo-xr4gg Před 3 měsíci +1

    Saludos desde España, tu curso muuuuy recomendable, gracias ;)

  • @michaelperez5426
    @michaelperez5426 Před rokem +17

    Estimado solo para aclarar Proyect Reactor no esta basado en RxJava sino en Reactive Strems que es la especificacion en la cual se basan RxJava y Proyect Reactor

  • @saulmedina4473
    @saulmedina4473 Před rokem +1

    Esta increíble tu contenido , gracias por compartir!
    Saludos , sigue así!

    • @latecnologiaavanza
      @latecnologiaavanza  Před rokem +1

      Gracias Saúl 😉
      No olvides suscribirte y compartir los cursos con tus amigos

  • @jefersonlerma5743
    @jefersonlerma5743 Před rokem

    Amigo muchas gracias por compartir, sos un crack, maquina, monstruo.

  • @nolimits700
    @nolimits700 Před rokem +2

    Gracias, tus aportes me ayudan mucho en mi proyecto de universidad(6to Ciclo). Un abrazo de otro peruano.

  • @Naimadmdp
    @Naimadmdp Před rokem

    Gracias por compartir tu conocimiento!!!!!

  • @sernaans305
    @sernaans305 Před 3 měsíci

    Me gusto... entiendo

  • @Jesus-hi6qy
    @Jesus-hi6qy Před rokem

    🎉 Gracias por compartir, me suscribo +1

  • @diegoresendiz1660
    @diegoresendiz1660 Před rokem

    excelente gracias amigo

  • @CarlitosDim
    @CarlitosDim Před rokem

    👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻 Sos el mejor

  • @pedropedro-br5jf
    @pedropedro-br5jf Před rokem +1

    😎me encanta aprender

  • @tupapichulovegeta8354
    @tupapichulovegeta8354 Před rokem +1

    Excelente Video!!! Se le agradece este gran aporte!!!
    Solo un pequeño detalle....Se debe mencionar que con el uso de WebFlux es de manera implícita el uso de suscribe() a los flujos que uno quiere publicar, a diferencia solo del uso de Reactor donde si debe ser explicito indicar .suscribe()

  • @edgarpimentel6160
    @edgarpimentel6160 Před rokem

    Saludos lider gracias

  • @federicomercado4277
    @federicomercado4277 Před rokem

    Amigo, hace mucho que no subes material (aguante springboot), se te extraña! Abrazo desde argentina.

  • @Gustav-dev
    @Gustav-dev Před rokem +1

    Crack papu, crack!

  • @continue5429
    @continue5429 Před rokem

    Exclente.

  • @misaelflores5611
    @misaelflores5611 Před rokem +1

    Increible Curso. Podrias hacer uno sobre desplegar un proyecto Spring boot y angular en Railways? o en Azure.

    • @latecnologiaavanza
      @latecnologiaavanza  Před rokem +2

      Gracias, por el momento no prometo nada aunque lo tendré en cuenta para un futuro

  • @dalex5539
    @dalex5539 Před rokem +3

    !!Genial!!
    esto si es de gangsters

  • @robinsondariocalderonroa4026
    @robinsondariocalderonroa4026 Před 11 měsíci

    Si algo, para los que les falla el pom por algo de que que deberia ser pom y es jar; deben agregar esto en el pom padre: pom

  • @LnMrJmnz
    @LnMrJmnz Před rokem

    Hola tienes algun video de las diferencias de mono flux vs completable futures?, ambos son asyncs

  • @sebas10able
    @sebas10able Před rokem

    Qué tal, necesito tu ayuda con urgencia, por favor, estoy haciendo una app en java spring boot y no consigo que mi entidad con su DTO asigne lo que capturo a través del formulario thymeleaf, solo me ocurre en una tabla la cual posee una composite key formada a partir de dos tablas relacionadas, al momento de llamar a los Get de cada ID obtengo 0, sin embargo, en el select de mi form si me carga los id como value, llevo varios días sin lograrlo, he intentado de todo sin éxito, espero tu respuesta o un contacto, por favor

    • @latecnologiaavanza
      @latecnologiaavanza  Před rokem +1

      Hola aquí te comparto una guía
      www.javaguides.net/2021/02/spring-boot-dto-example-entity-to-dto.html

    • @sebas10able
      @sebas10able Před rokem +1

      @@latecnologiaavanza gracias, pero proceso de mapear lo entiendo, lo estoy haciendo con mapstruct y lombok todo, el problema es que mi tabla tiene una pk compuesta de dos tablas relacionadas y al momento de querer implementar mi formulario para guardar me salta como si una instancia de una de las tablas padre estuviera todo en null, pero al momento de tratar de recuperarlo por medio del findbyid tampoco obtiene nada porque los id del dto están en 0... Creo que optaré por crear una clave autogenerada con esas dos claves netamente como foráneas y en el front ocultar el campo del identity, aunque si lo ocuparé para todo el CRUD... Gracias de todos modos, me han servido de guía varios de tus vídeos

  • @ramam7787
    @ramam7787 Před 10 měsíci

    se puede usar JPA y WebFlux en un mismo proyecto? por ejemplo usar webFlux solo para notificaciones, el resto con JPA?

  • @miguelantonioescuderoperal7485

    Consulta Master porque en este ejemplo del crud con mongo no se necesita usar hibernate para mapear tablas a la bd? tampoco utilizo la anotacion para que el id se incremente solo, eso no me quedo claro

    • @latecnologiaavanza
      @latecnologiaavanza  Před 29 dny

      Hola, el motivo por el que no uso Hibernate es porque MongoDB es una base de datos no relacional. A diferencia de SQL o MySQL, donde se necesita un ORM para no tener que crear manualmente las tablas, en MongoDB el enfoque es diferente debido a su naturaleza de esquema flexible y orientado a documentos

    • @miguelantonioescuderoperal7485
      @miguelantonioescuderoperal7485 Před 29 dny

      @@latecnologiaavanza muchas gracias estoy comprendiendo la reactividad es otro enfoque. gracias por la aclaracion master

    • @MartinVillalobos-ec7be
      @MartinVillalobos-ec7be Před 22 dny

      es mongo, no es estructurado como sql, revisa su sintaxis y como se crean los documentos

  • @VictorRafaelMachadoArteaga

    Muy buen curso, felicitaciones. No obstante, el concepto de Contra presión (Backpressure) esta un poco superficial. En realidad se puede definir como "Backpressure in software systems is the capability to overload the traffic communication. In other words, emitters of information overwhelm consumers with data they are not able to process"

  • @valerigutierrez3871
    @valerigutierrez3871 Před rokem +1

    Hola hay que tener conocimiento prevuio de algun lenguaje para enpezar el curso ?.tengo cimientos en Java.

  • @stevencardenasvela6278

    Amigo te admiro mucho por tus conocimientos gracias por compartirlos, disculpa la pregunta pero que edad tienes y cuanto tiempo te tomo aprender todo esto?

  • @jorgecarogutierrez6710

    Hola buenas tardes, siempre que quiera trabajar con Monos y Fluxs me debo subscribir ?

  • @Alejandro-xp6er
    @Alejandro-xp6er Před rokem

    Bro te voy a apoyar con pesos mexicanos pero en al quincena que viene me podrías apoyar a aprender microservicios con gradle, Loggers y seguridad de de token y contraseñas algo básico porque para mí si es algo muy complicado amigo con MVC

  • @carlostorres-uf6hz
    @carlostorres-uf6hz Před 6 měsíci

    hola, en el minuto 1:23:47, estas condicionando que el objeto si es null, pero creo que no nunca va entrar en esa condicion, por que has creado una instacia del objeto, y has agregado elementos
    deberia de ser si esta vacio el objeto, ( is empty)

  • @TROLLIEL13
    @TROLLIEL13 Před rokem +1

    bro tienes algun proyecto de java donde uses sping boot con una api protegida por token

    • @latecnologiaavanza
      @latecnologiaavanza  Před rokem +1

      Si mira en el canal

    • @TROLLIEL13
      @TROLLIEL13 Před rokem

      @@latecnologiaavanza si lo e visto pero tu trabajas es con base local poniendo localhost y yo tengo es una api externa 😅😅

  • @miguelantonioescuderoperal7485

    Master consulta cual manera recomienda crear api rest con webflux de manera mvc o functional?

  • @miguelantonioescuderoperal7485

    Master segui los pasos sobre la configuracion y no me permite abrir 2 proyectos en 1 me sale este eerror en el pom 'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. y de la clase introduccion-project-reactor no me permite crear clase

    • @latecnologiaavanza
      @latecnologiaavanza  Před měsícem

      Hola Miguel, trata de probar descargando el código fuente :) github.com/latecnologiaavanza/programacion-reactiva-java

    • @miguelantonioescuderoperal7485
      @miguelantonioescuderoperal7485 Před měsícem

      @@latecnologiaavanza ya esta todo okey muchas gracias

  • @tupapichulovegeta8354
    @tupapichulovegeta8354 Před rokem +3

    Hola @latecnologiaavanza una pequeña a consulta respecto al operador "thenAwait", justo realice un pequeño ejemplo para que se pueda verificar si al acabo de un tiempo X se pueda constatar que efectivamente en dicho tiempo ya se encuentra emitido un elemento (En la generación del flujo usé el delayElements para asignar un tiempo Y a cada elemento). Pero se evidencia que no lo toma en cuenta T_T, ya que según el ejemplo debió haber fallado ya que el tiempo esperado es menor al asignado en el flujo:
    @Test
    public void thenAwaitThenCancelWaitsForDuration() {
    Duration verifyDuration = StepVerifier.create(Flux.just("foo", "bar", "Ab").delayElements(Duration.ofMillis(800)))
    .expectSubscription()
    .thenAwait(Duration.ofMillis(500)) //Se indica que espere unos 500 Millis antes de verificar la emisión de "foo" que está seteado a 800 Millis pero pasa OK¿?
    .expectNext("foo")
    .thenAwait(Duration.ofMillis(500)) //Se indica que espere unos 500 Millis antes de verificar la emisión de "bar" que está seteado a 800 Millis pero pasa OK¿?
    .expectNext("bar")
    .thenAwait(Duration.ofMillis(200)) //Se indica que espere 200 Millis antes de cancelar
    .thenCancel()
    .verify(Duration.ofMillis(2400)); //Verifica que el tiempo de todo la emisión del flujo es de 3x800 Millis
    assertThat(verifyDuration.toMillis()).isGreaterThanOrEqualTo(1200L); //Verifica que el tiempo de la prueba fue 500 + 500 + 200 Millis
    }
    Alguien me pueda ayudar con esta interrogante? o es que el "thenAwait" NO HACE NADA y solo es como descriptivo ???

  • @edgarpimentel6160
    @edgarpimentel6160 Před rokem

    Esperando los de programacion funcional

  • @andresarturoperezarango1026

    Por favor podrías compartir las diapositivas. Gracias.

  • @manuelmontano520
    @manuelmontano520 Před rokem

    Usas webClient en El curso?

  • @miguelantonioescuderoperal7485

    Entonces necesito conocimientos de spring boot

  • @braintobrain3803
    @braintobrain3803 Před 2 měsíci

    Para enseñar algo primero se debe tener claro los conceptos, se nota la improvisación y falta de claridad en varias partes del video.

  • @richardyarin3977
    @richardyarin3977 Před 5 měsíci

    tu curso esta interesante, pero los de CJAVA son una broma. Sus cursos no valen la pena para nada.

  • @georaves2998
    @georaves2998 Před rokem

    Papito rico 😋 que