- 322
- 51 753
El laboratorio de Rafa
Spain
Приєднався 7 кві 2013
Apasionado por la informática desde mi niñez y luego de más de 30 años de experiencia como autónomo y en la empresa privada, inicio la aventura de compartir los conocimientos y la experiencia en desarrollo de aplicaciones y tecnología que he adquirido en este tiempo.
La idea es comenzar por presentar los fundamentos básicos e ir complejizando los temas hasta abordar las técnicas y tecnologías que han tenido éxito en la industria.
La subscripción es gratis pero me ayuda y motiva a seguir mejorando la calidad de los contenidos presentados.
Apoya mi trabajo con tu suscripción y tu like. Gracias.
Puedes encontrar todos mis videos en mi website: laboratoriorafa.mooo.com
Twitter: @LaboratorioRafa
IG: @LaboratorioRafa
Whatsapp: whatsapp.com/channel/0029VaEVdMy6hENkIJh5W60B
Telegram: t.me/laboratorioderafa
La idea es comenzar por presentar los fundamentos básicos e ir complejizando los temas hasta abordar las técnicas y tecnologías que han tenido éxito en la industria.
La subscripción es gratis pero me ayuda y motiva a seguir mejorando la calidad de los contenidos presentados.
Apoya mi trabajo con tu suscripción y tu like. Gracias.
Puedes encontrar todos mis videos en mi website: laboratoriorafa.mooo.com
Twitter: @LaboratorioRafa
IG: @LaboratorioRafa
Whatsapp: whatsapp.com/channel/0029VaEVdMy6hENkIJh5W60B
Telegram: t.me/laboratorioderafa
08- Creando Aplicaciones con Spring Boot y su Ecosistema: estrategias de inyección de dependencias.
Octava parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema", en la cual seguiremos hablando de las distintas estrategias de inyección de dependencias cuando existen varias implementaciones de un mismo Bean.
Puntos tratados:
- Estrategias de inyección de dependencia
- Inyección basada en el tipo de perfil
- Factory Beans o Configuración Manual
- Usar Mapas o Listas de Beans
- Parte práctica
La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas: ua-cam.com/play/PLtdeXn2f7ZbNZ3ViNq4fUO5Gh0YWJpYWU.html
Código desarrollado en la parte 8 del tutorial: github.com/rafaelt458/tutorialspringboot/tree/Principal/SpringBoot08
#Programación #Lógica #Java #Informática #Tutorial #Gratis #Free #Algoritmos #Software #IDE #Objetos #Clases #Herencia #BBDD #postgresql #mysql #jpa #Spring #SpringBoot #API #REST #Bean
Puntos tratados:
- Estrategias de inyección de dependencia
- Inyección basada en el tipo de perfil
- Factory Beans o Configuración Manual
- Usar Mapas o Listas de Beans
- Parte práctica
La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas: ua-cam.com/play/PLtdeXn2f7ZbNZ3ViNq4fUO5Gh0YWJpYWU.html
Código desarrollado en la parte 8 del tutorial: github.com/rafaelt458/tutorialspringboot/tree/Principal/SpringBoot08
#Programación #Lógica #Java #Informática #Tutorial #Gratis #Free #Algoritmos #Software #IDE #Objetos #Clases #Herencia #BBDD #postgresql #mysql #jpa #Spring #SpringBoot #API #REST #Bean
Переглядів: 34
Відео
Oracle y el lenguaje PL/SQL parte 46. Uso de ficheros externos.
Переглядів 1037 годин тому
Parte 46 del tutorial de la base de datos Oracle y el lenguaje PL/SQL. En esta parte mostraremos como usar un fichero externo en el lenguaje PL/SQL. La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. En esta parte tratamos los puntos siguientes: - Uso de ficheros externos - Definir un directorio en Oracle - Paquete ULT_FILE - Parte práctica Esta parte...
Java parte 151. El patrón Singleton.
Переглядів 10112 годин тому
Parte 151 del tutorial del lenguaje Java donde presentamos el patrón Singleton y mejoramos nuestra implementación del patrón de diseño DAO con JDBC agregando una configuración. La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. Enlace para descargar el código fuente desarrollado durante las partes 147, 148, 149, 150 y 151 del tutorial: github.com/rafa...
07- Creando Aplicaciones con Spring Boot y su Ecosistema: Inyección de dependencias-Múltiples Beans
Переглядів 7016 годин тому
Séptima parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema", en la cual hablaremos de la inyección de dependencias cuando existen varias implementaciones de un mismo Bean. Puntos tratados: - Inyección de dependencias con múltiples Beans - Estrategias de inyección de dependencia - Anotación @Primary - Anotación @Qualifier - Anotación @ConditionalOnProperty - Parte práctica ...
Java parte 150. Implementando el patrón DAO con JDBC.
Переглядів 61День тому
Parte 150 del tutorial del lenguaje Java donde continuamos nuestra implementación del patrón de diseño DAO con JDBC y hablamos de la reflexión. La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. El código desarrollado durante este tutorial será publicado en la parte 151. Antes de ver este video, recomiendo ver los videos anteriores de la lista: ua-cam...
06- Creando Aplicaciones con Spring Boot y su Ecosistema: Tipos de inyección de dependencias.
Переглядів 5014 днів тому
Sexta parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema", en la cual hablaremos de las formas en que se pueden hacer la inyección de dependencias en Spring Boot. Puntos tratados: - Tipos de inyección de dependencia - Acerca del uso de la anotación @Autowired - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas: ua-...
Java parte 149. La reflexión (Reflection).
Переглядів 4714 днів тому
Parte 149 del tutorial del lenguaje Java donde continuamos nuestra implementación del patrón de diseño DAO con JDBC y hablamos de la reflexión (Reflection). En esta parte tratamos los puntos siguientes: - ¿Qué es la reflexión? - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. El código desarrollado durante este tutorial será publicad...
05- Creando Aplicaciones con Spring Boot y su Ecosistema: Polimorfismo e inyección de dependencias.
Переглядів 6821 день тому
Quinta parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema", en la cual hablaremos de 3 conceptos fundamentales de Spring Boot, el polimorfismo, la inyección de dependencias y los Beans. Puntos tratados: - ¿Qué es polimorfismo? - Programación orientada a interfaces - ¿Qué es la inyección de dependencias? - Relación de la inyección de dependencias con Spring Boot - ¿Qué es u...
Configurar un cluster Kafka usando Docker.
Переглядів 7821 день тому
Un clúster Kafka es un conjunto de máquinas ejecutan Kafka (conocidos como brokers) que trabajan juntos para distribuir, almacenar y procesar datos de forma distribuida. Cada broker es un servidor que maneja un subconjunto de los datos y de las operaciones dentro del clúster. En este tutorial explicaremos como configurar un cluster Kafka usando Docker. El código del fichero docker-compose.yml u...
Java parte 148. Anotaciones personalizadas.
Переглядів 6921 день тому
Parte 148 del tutorial del lenguaje Java donde continuamos nuestra implementación del patrón de diseño DAO con JDBC y hablamos de las anotaciones personalizadas. En esta parte tratamos los puntos siguientes: - ¿Qué son las anotaciones? - ¿Qué son las anotaciones personalizadas? - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. El cód...
04- Creando Aplicaciones con Spring Boot y su Ecosistema: La capa de servicios.
Переглядів 5228 днів тому
Cuarta parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema", en la cual agregamos una capa de servicios muy simple a la primera API REST que creamos durante el tutorial anterior. Puntos tratados: - ¿Qué es la capa de servicios? - Beneficios de la capa de servicios - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas:...
Java parte 147. El patrón de diseño DAO.
Переглядів 66Місяць тому
Parte 147 del tutorial del lenguaje Java donde presentamos el patrón de diseño DAO y comenzamos su implementación usando JDBC. En esta parte tratamos los puntos siguientes: - ¿Qué es el patrón DAO? - Implementación de DAO con JDBC - Beneficios del Patrón DAO - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. El código desarrollado dur...
03- Creando Aplicaciones con Spring Boot y su Ecosistema: Creación de la primera API REST.
Переглядів 106Місяць тому
Tercera parte del tutorial "Creando Aplicaciones con Spring Boot y su Ecosistema" donde creamos una primera API REST muy simple para mostrar los distintos métodos HTTP que se pueden usar y las convenciones comúnmente utilizadas. Puntos tratados: - ¿Qué es un API REST? - ¿Qué son las anotaciones? - Anotaciones utilizadas hasta ahora - Parte práctica La agrego a una lista de reproducción que he c...
Configurar Cluster Kafka en computadores independientes.
Переглядів 56Місяць тому
Un clúster Kafka es un conjunto de máquinas ejecutan Kafka (conocidos como brokers) que trabajan juntos para distribuir, almacenar y procesar datos de forma distribuida. Cada broker es un servidor que maneja un subconjunto de los datos y de las operaciones dentro del clúster. En este tutorial explicaremos como configurar un cluster Kafka en computadores independientes. Para este tutorial vamos ...
Java parte 146. Procesar datos de sitios web en tiempo real con Websockets.
Переглядів 68Місяць тому
Parte 146 del tutorial del lenguaje Java donde continuamos hablando acerca del procesamiento de datos de sitios web en tiempo real. En esta parte tratamos los puntos siguientes: - Procesamiento de Datos en Tiempo Real con Websockets - Ventajas de este enfoque - Parte práctica La agrego a una lista de reproducción que he creado para que todas las partes estén agrupadas. Enlace para descargar el ...
02- Creando Aplicaciones con Spring Boot y su Ecosistema: Creación de un primer proyecto.
Переглядів 99Місяць тому
02- Creando Aplicaciones con Spring Boot y su Ecosistema: Creación de un primer proyecto.
Java parte 145. Procesar datos de sitios web en tiempo real con API REST.
Переглядів 97Місяць тому
Java parte 145. Procesar datos de sitios web en tiempo real con API REST.
01- Creando Aplicaciones con Spring Boot y su Ecosistema: Introducción y objetivos del tutorial.
Переглядів 200Місяць тому
01- Creando Aplicaciones con Spring Boot y su Ecosistema: Introducción y objetivos del tutorial.
Instalación de la herramienta Offset Explorer o Kafka Tool.
Переглядів 68Місяць тому
Instalación de la herramienta Offset Explorer o Kafka Tool.
Persistencia: explorando JPA e Hibernate desde cero 23. Integración de JPA en Aplicaciones Web.
Переглядів 61Місяць тому
Persistencia: explorando JPA e Hibernate desde cero 23. Integración de JPA en Aplicaciones Web.
Java parte 144. Procesar datos de sitios web en tiempo real - Introducción.
Переглядів 66Місяць тому
Java parte 144. Procesar datos de sitios web en tiempo real - Introducción.
Persistencia: explorando JPA e Hibernate desde cero 22. Usando procedimientos almacenados.
Переглядів 762 місяці тому
Persistencia: explorando JPA e Hibernate desde cero 22. Usando procedimientos almacenados.
Instalación de la versión gratuita del IDE IntelliJ IDEA.
Переглядів 3062 місяці тому
Instalación de la versión gratuita del IDE IntelliJ IDEA.
Persistencia: explorando JPA e Hibernate desde cero 21. Consultas nativas.
Переглядів 502 місяці тому
Persistencia: explorando JPA e Hibernate desde cero 21. Consultas nativas.
Instalación de la versión gratuita de Postman.
Переглядів 662 місяці тому
Instalación de la versión gratuita de Postman.
Persistencia: explorando JPA e Hibernate desde cero 20. El API Criteria.
Переглядів 602 місяці тому
Persistencia: explorando JPA e Hibernate desde cero 20. El API Criteria.
Instalación de Kafka en Docker con docker-compose.
Переглядів 1172 місяці тому
Instalación de Kafka en Docker con docker-compose.
Persistencia: explorando JPA e Hibernate desde cero 19. El patrón de diseño DAO.
Переглядів 762 місяці тому
Persistencia: explorando JPA e Hibernate desde cero 19. El patrón de diseño DAO.
Instalación de Kafka en VM Linux Ubuntu Server 24.04 LTS.
Переглядів 602 місяці тому
Instalación de Kafka en VM Linux Ubuntu Server 24.04 LTS.
Persistencia: explorando JPA e Hibernate desde cero 18. JPQL: Uniones (JOIN) en JPQL y HQL.
Переглядів 552 місяці тому
Persistencia: explorando JPA e Hibernate desde cero 18. JPQL: Uniones (JOIN) en JPQL y HQL.
Muy Util
muchas gracias
Una duda, sigue siendo o se considera como un POJO por más que se use Lombok? o al utilizarlo en una clase ya no sería un POJO?
Hola. Interesante pregunta. La respuesta es que sigue siendo considerado un POJO. El uso de Lombok solo evita que tengas que escribir ese código, pero se genera a tiempo de compilación. De modo que en el programa compilado sigues teniendo la misma estructura que antes de usar Lombok. ¿Resuelve esto tu duda?
Muy aplicable todo esto.
@@ÓscarQuijada-b9z Me alegro que haya sido de utilidad.
Excelente Rafa, me ha sido de mucha ayuda!
Muchas gracias por el comentario.
Muy interesante. Gracias.
Gracias por el comentario.
Gran trabajo. Gracias.
Gracias por el comentario
Como se hace con un archivo
Hola, muy buena pregunta. Hay que hacer varios pasos. Para empezar, el directorio donde está el archivo debe estar definido en los directorios a los que Oracle tiene acceso. Luego, tenemos que leer el contenido del archivo en una variable de tipo VARCHAR2 o CLOB usando paquetes como UTL_FILE o DBMS_LOB. Una vez la información en memoria, ya podemos usar la función JSON_TABLE como indica este tutorial. Como es una pregunta interesante, en los próximos días voy a agregar un tutorial explicando esto.
Muy ameno aprender con este tipo de ejercicios.
Este es otro tema por el cual estaba muy interesado. Gracias.
@@ÓscarQuijada-b9z gracias por el comentario
Me interesaba estudiar este tema. Gracias por el tutorial.
@@ÓscarQuijada-b9z Gracias por el comentario.
Sigo avanzando. Gracias por el curso.
Me está gustando este curso. Gracias.
Gracias por el comentario y suerte con el curso!
mucho mas claro el tema me ha quedado, ahora a practicar , gracias rafaaa
Me alegro. Gracias por el comentario. Y sí, la práctica es la que fija los conocimientos. Suerte!
Excelente explicacion.
Gracias por el comentario. Saludos.
Al fin pude entender este concepto. Gracias hermano, nuevo seguidor!
Gracias por el comentario y por seguirme. Me alegra un montón porque es un concepto difícil de entender y también de explicar. Saludos!
Gracias, me fue de utilidad
Gracias por el comentario. Me alegra que haya sido así.
Una clase magistral! Gracias por compartir tus conocimientos.
Gracias por el comentario, me alegro que fuera de tu agrado.
¡Muchas gracias! Me ayudó bastante para mi trabajo
Gracias por el comentario, me alegra que haya sido de utilidad.
¡Buenas Rafa! Muchas gracias por este gran trabajo que has hecho con este tutorial. Lo iré viendo poquito a poco que el saber nunca ocupa espacio 😄 ¡Saludos!
Hola, muchas gracias por tu comentario. Tienes toda razón, se aprende cada día y justamente poco a poco es como más se disfruta. Suerte con ello!. Si tienes dudas, acá me tienes.
profe buenas, que diferencia existe entre manejar jpa con querymethos o con los metodos que el trae por defecto, y entre tu forma que es mas manual de hacer la manipulación y los procesos ?
Hola, no hay ninguna diferencia ya que al final, el objetivo es ejecutar un Stored Procedure. Básicamente, la diferencia será de legibilidad dependiendo del sitio donde coloques el código (dentro de la misma entidad o en una clase aparte). Espero que eso conteste tu pregunta, si no es así me lo dices. Saludos!
Excelente canal Rafa. Que bien que llegué aquí.
@@josemariazaracho7322 Me alegra mucho que te guste. Muchas gracias por tu comentario.
Fenomenal clase! Muy útil.
@@miguels.v.7737 Me alegro que sea de utilidad. Es justo el propósito del canal. Gracias por el comentario.
Inicio con el curso! saludos desde Perú
Bienvenido. Espero que te sea de utilidad. Buen aprendizaje y saludos!
Hola Rafa! Lo primero enhorabuena por este trabajo. Me está siendo de gran ayuda, muchas gracias. Entiendo perfectamente los cascades de tipo PERSIST, MERGE y REMOVE pero no acabo de ver los de tipo DETACH y REFRESH. He probado a hacer un MERGE y un DETACH en tu ejemplo y funciona tal como comentas en el video (se actualizan los alumnos), es como si el DETACH no funcionara. Por ejemplo, ¿primero hace un merge de las entidades hijas (alumnos) y luego los saca del contexto de persistencia (detach)? No le veo el sentido porque el entityManager.merge, al contrario que el entityManager.persist o el entityManager.find no introduce a las entidades en el contexto de persistencia. Muchas gracias de nuevo.
Muchas gracias por tu comentario. Esas 2 alternativas se usan bastante poco y tienen el siguiente propósito: DETACH: Propaga la desvinculación del contexto de persistencia a las entidades relacionadas y REFRESH: Propaga la actualización desde la base de datos a las entidades relacionadas. Formas para probar: DETACH -> Verificar que las entidades relacionadas a un Entidad con esta propiedad, quedan fuera del contexto de persistencia cuando sacas a la entidad del contexto. REFRESH -> Haces cambios y una Entidad y en sus entidades relacionadas estando todas fuera del contexto de persistencia, cuando ejecutas el MERGE, la base de datos debe quedar sincronizada con los cambios realizados en la entidad con la propiedad y en sus entidades relacionadas. Espero que esto aclare tu duda y si no es así, házmelo saber. Saludos!
@@ellaboratorioderafa Muchas gracias Rafa. Voy a probarlo y te comento. Si me permites y como idea de futuro para próximos tutoriales, no estaría mal hacer una API Rest con Spring Boot ahora que están tan de moda. O también, microservicios con Spring Boot.
@@miguels.v.7737 pues estás de suerte, jajaja, justo empecé un nuevo tutorial hace poco: ua-cam.com/video/XrrdqrnU_xo/v-deo.html
@@ellaboratorioderafa Lo seguiré con atención. Veo que también cambiaste el IDE a intellij!! (buena elección). ;-) Muchas gracias.
Gracias por compartir! 😊
@@MariaVielm Gracias por el comentario.
Ahí te dejo mi like 👍
Gracias! Eso motiva.
Gracias Rafa. Excelente video. Una cuestión para comentar. ¿cual es la relación o como conviven, el ciclo de vida de las entidades con los tipos de cascada en las relaciones de tipo OneToMany o ManyTone (CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH, CascadeType.REMOVE). Gracias?
Hola, gracias por el comentario. Esos temas los explico en la parte 11 del tutorial. Cuando lo veas, si te queda alguna duda me dices. La lista de reproducción del tutorial completo está en la descripción del video. Saludos!
he estado viendo tus clases, de momento soy un entusiasta de la programacion, he comprobado que existe "parametros.getOrDefault" en vez de usar el if
Excelente profe, adelante
@@rubensanabria9598 Gracias por el comentario.
Muchas gracias por la explicación. Muy clara. Saludos desde Colombia.
@@johnluckystar Me alegro que te haya servido. Muy bonito tu país. Saludos.
Acabo de llegar a esta parte y me parece coherente gracias a tu explicacion detallada el como la ip da visibilidad a las conexiones a pesar de que solo la estes usando de ejemplo para un acceso remoto a un servidor. Gracias al video ahora se me hace mas claro el desarrollo de software, cada dia se aprende algo nuevo
Hola, me alegra mucho que estés aprendiendo nuevas cosas, es justamente el propósito de este canal. Gracias por tu comentario.
Buenisimo, sin duda internet es tan grande para encontrar la respuesta a una incognita, solo hay que darle tiempo
@@sinoidal5683 Hola, ne alegro que haya sido de utilidad. Gracias por el comentario.
Justo lo que buscaba, ahora solo falta ponerlo en practica
@@sinoidal5683 Estupendo. Suerte con ello.
Excelente! Gracias Profe Rafa.
Excelente! Gracias por compartir.
Gracias por el comentario
Gracias por compartir tus conocimientos. Hay muy poco sobre este tema ( en español) en UA-cam.
Hola, tienes toda la razón, por eso me animé a publicar estos tutoriales. Me alegro que sean de utilidad.
Gracias por el video! me sirvió mucho
Hola, me alegra saber que ha sido de utilidad. Gracias por el comentario.
Excelente explicación. Gracias!
Hola, me alegra que te sea de utilidad. Muchas gracias por el comentario.
Excelente!
Que bien explicado! Gracias por compartir Profe Rafa.
Excelente! Gracias por compartir Profe Rafa.
como puedo activar una licencia de mobaxterm?
Hola, el link que dejé en la descripción del video te lleva al sitio oficial de MobaXTerm. Allí puedes adquirir tu licencia.
Rafa sos un genio no te puedo explicar el problema que me resolviste con lo de compatibilidad, segui asi que sos excelente
Hola, me alegra que haya sido de utilidad, es justo el propósito de este canal. Gracias por el comentario.
Gracias por el aporte!! 🙏
Me alegra que fuera de utilidad. Gracias por el comentario.
excelente canal, solo que al momento de reiniciar el servicio despues de generar los cambios , sale error no se puede iniciar el servicio en local
Gracias por el comentario. Si la creación de tu usuario ha sido exitosa, te recomiendo que revises la sintaxis de la configuración agregada, cualquier mínima diferencia puede causar problemas de inicio del servidor. Lo otro que se me ocurre, es que estés trabajando en otra versión de mongo que no sea que usé como base para el tutorial (Versión 7). Otra cosa que te puede dar más pistas es que revises los logs del servidor mongo.
Hola. En caso de no tener creada una base de datos, cómo sería para meter el último comando en el cmd? he creado una base de datos en postgreSql para solucionarlo, entiendo además hay que descargar DBeaver ? Gracias!
Hola, el último comando se usa para crear un DataSource y eso solo se puede hacer teniendo una base de datos. Sino lo ejecutas no pasa nada. Tendrás tu servidor de aplicaciones instalado y el driver de PostgreSQL configurado. Ya cuando decidas crear tu base de datos, ejecutas ese comando. Espero que eso resuelva tu duda.
@@ellaboratorioderafa Gracias!!
Hola Rafa, tendras un archivo de texto donde esten los comandos que estas utilizando? es que no se distingue muy bien los textos en el video, le agradeceria muchisimo.
Hola, hay un repositorio git con el proyecto desplegado y en la carpeta de recursos hay unos archivos con los comando que he utilizado, aunque tienes que adaptarlos al nombre de dominio que hayas escogido y la clave que hayas escogido. También, puedes intentar ver los video en la mejor calidad posible. En la esquina inferior derecha, hay una rueda que te permite cambiar la calidad del video. Si no resulta me avisas y vemos como solucionamos. Suerte!
Gracias por compartir! 😊
Excelente!