Spring course. Dependency injection. Video 9
HTML-код
- Опубликовано: 9 фев 2025
- In this video we see the dependency incetion. We continue working with the example of previous videos.
For more courses, exercises and manuals visit: www.pildorasinformaticas.es
5 años y esto sigue vigente siendo una gran explicación.
Gracias y gracias de nuevo.
yo aprendo mas por video que por libros! no hay palabras para agradecer lo que haces por nosotros ❤
Gracias por el comentario. Un saludo!
Excelente! te dije que iba a empezar con el curso de Spring y asi lo hice! no podes ser más claro!!! no le des bola a quienes critican lo que haces, a menos que sirva de forma constructiva. Hay que entender que para programar hay que manejar LOS CONCEPTOS!!! así nacen los buenos programadores, gracias infinitas por generar contenid educativo de gran calidad y valor!
Gracias por el comentario y por seguir mis cursos con tanta fidelidad. Un saludo!
Desde luego que este hombre tiene el cielo ganado, la dedicacion que le da a sus videos creo que no tiene comparación posible. Mil gracias
El mejor prefesor de youtube y de todas las aplicaciones educativas de pago.
gran parte de lo que soy hoy programando te lo debo a ti . infinitas gracias . te pongo like en todos y cada uno de tus videos
He pagado un curso de spring de lo mejorcito de la pagina web y aun asi, sigo prefiriendo venir a tus videos, eres muy grande muchas gracias por todo!
Exelentes videos, muy buenas explicaciones. Estos son los heroes sin capa que nos permiten aprender a programar gratis y con calidad. saludos desde Argentina.
Espero poder contribuir en el futuro a que otros se pueden formar en programacion una vez que tenga un trabajo y experiencia.
En pleno 2024, el mejor curso que he podido encontrar! Muchas Gracias.
Hola Juan, te sigo hace años y gracias a tu forma de impartir conocimiento aprendí java donde gracias a ello he conseguido varios empleos, de igual manera accedo a plataformas como Udemy donde hay muchos profesores pagos en varias tematicas de la tecnologia, pero haciendo una comparación sana a mi parecer la forma como nos compartes tu conocimiento conecta a los que amamos esto, eres el mejor tutor online que hay, GRACIAS
La verdad que profesores no hacen falta, hacen falta buenos profesores (y me estas demostrando ser uno de ellos). Te has ganado un subscriptor mas.
Muchas gracias por tu comentario. Me alegro de que te gusten los vídeos. Un saludo!
Cursos con vídeos como los tuyos, son el mejor medio para aprender a programar, gracias por la dedicación que tienes y el cariño que le pones a todo. Un salud.
Tus videos son geniales! eres el mejor, desde Brasil
Estoy viendo el curso y me agrada mucho que las cosas las explique de esta forma porque de verdad viendo los significados literales uno puede llegar a marearse, siga sacando cursos así.
Profe habia mirado videos y leido en google pero no habia podido entender, pero con su video lo entendi. saludos desde medellin colombia. Dios lo bendiga gracias
Magnifico manejo del trema y maravillosa manera de idear una explicación que pueda ser entendida por todos!
Eres un crack, he visto cursos en ingles-espaniol y no encontraba uno que realmente enseniara bien Spring y finalmente encontre tus videos, agradezco bastante el tiempo que le dedicaste a los videos me has ayudado bastante, tambien he visto tu curso de Python y es de los mejores que he tomado.
Excelente video, te agradezco tanto la metodología que desarrollas. En verdad muy valiosa.
Excelente video , excelente explicación... Nuevamente mil gracias por la enseñanza profesor.
Gracias a ti por seguir mis vídeos. Un saludo!
El mejor profesor del mundo!!
Muy bueno todo el curso, la verdad es que he estado buscado que es una dependencia por que no entendia, y mira que lo has explicado muy bien gracias...
Gracias crack!! muy buenos tus videos y explicaciones, me están ayudando bastante
Me encanta, Spring tiene notables ventajas en la reutilización de código. Gracias Juan por este maravilloso curso
Buen Video hermano, Me estoy tirando todos tus videos del curoso de Java Eres el mejor!!! Desde Republica Dominicana
Hola, donde se encuentra el curso de java ? aca lo nombran pero no lo veo en los cursos del canal
Cordial saludo, muchisimas gracias por tus tutoriales, es de los pocos que he encontrado que explican bien las cosas.
Gracias profesor Juan, por fin entendí la inyeccion de dependencias con esa buena ilustración.
Profesor usted es un excelente maestro, muchas gracias por compartir este material. Los comentarios negativos, de gente que ya "sabe" de Java o de estos temas hay que dejarlos de lado, soy tech lead y nunca es suficiente saber de todas las bases y conceptos iniciales de cada tecnología.
Ademas de explicar a la perfección, las animaciones son buenísimas, te mando un gran abrazo desde Argentina. saludos
siempre me divierto con las críticas que le haces a tus críticos. Buen trabajo el que haces. Saludos y gracias por el curso
es increíble la forma en la que explicas das en el punto exacto con tus ejemplos, sincera mente el mejor lejos de cualquier otro profesor o instructor de universidad ese gran esfuerzo que haces para dar tus conocimientos gratis. mil y mil gracias ¿ te has puesto a pensar y cuantas personas ayudadas y que están agradecidas con Tigo ?
Vale, no me he enterado muy bien de todo al principio, pero le veo una utilidad enorme, así que toca verlo otra vez. Gracias pro el video!
Muchas gracias por tus cursos. Magnífica la forma de explicar y dedicación. Desde hace muchos años para mi son los mejores! Sigue así y muchas gracias por todo. Saludos desde Madrid!
Usted es un crack Juan, que dios le de mucha vida y salud!
Muchas gracias por el curso. Excelente explicación
Hola, creo que entre las muchas funciones de un profesor, está la de explicar los contenidos de una materia. Creo que es a lo que dedica cualquier profesor buena parte de su tiempo. A mi modo de ver, estos videos no son más que un profesor (uno muy bueno) dando una clase. Cuestionar la utilidad de los videos es, por tanto, cuestionar la utilidad de los profesores en este cometido, algo que parece fuera de toda discusión.
Para muchos de nosotros, acudir a una clase en una localización y horario específicos es imposible, y estos excelentes videos (¡¡gratuitos!!), son una ayuda inestimable.
¡Nunca lo agradeceré lo suficiente!
Muchas gracias por el comentario Raúl. Estoy de acuerdo en todo lo que dices. En ocasiones he encontrado comentarios de personas por ahí en foros cuestionando la utilidad de un profesor cuando existen buenos libros. Hay gente privilegiada que no necesita profesores para aprender, pero muchas veces estas personas tienen falta de empatía y creen que todos son como ellos. Un saludo!!
Excelenetes Clases , Gracias por compartir tus conocimientos, son muy claros y los explicas de una manera facil y sencilla.
sigue este curso eres el mejor
magnifico curso, un profesor muy talentoso.
De nuevo al ruedo, me estoy actualizando de nuevo con el curso, gracias por el aporte.
Explicas muy bien, gracias por todos tus videos!!
Excelente Curso como todo los de pildorasinformatica
Saludos desde San Luis Potosi, Mexico...
Excelente video, ahora estoy siguiendo tu curso de JavaScript y empezare con el de Java, eres un excelente Profesor
Gracias por tu comentario. Un saludo!
Saludos desde México
Con respecto a lo que dices del forero listo, al menos en mi caso siempre aprendí mejor con la explicación humana, presencial, dinámica y los libros ya para profundizar. Tus cursos son “para que lo entendamos todos” con en inmenso aporte que significa esto. Un saludo y muchísimas gracias!
Muy bueno el video! Sobre el ejemplo del final, me parece que quedaría más clara la utilidad de la inyección de dependencias al pasar una nueva clase (que también implemente CreacionInformes) al bean de DirectorEmpleado. De esta forma, se vería mejor que lo que estamos inyectando es al creador de informes, y podríamos intercambiar entre una implementación u otra de este último, sin que afecte al Empleado que lo usa. Un abrazo y gracias desde Argentina!
Por fin entiendo bien lo que es las inyecciones de dependencias gracias
dos años de estudio de DAM y NSADIE me hbía explciado nunca tan bien lo que es una dependencia. Like solo por eso ya. Ánimo y muchas gracias por toda tu ayuda!!
Excelente explicación, gracias por explicar todo desde 0 para lo que no sabemos nada de utilizar otras cosas. Me dio mucha risa el min 24:53
Gran vídeo, compadre
muy bueno Juan! saludos
Es la mejor explicacion que he encontrado sobre la DI y eso que ni siquiera uso Spring XD
Juan, muchas gracias por tu generosidad y dedicación. Voy entendiendo lo de la inversión de control y la inyección de dependencias: Nos permite solicitar objetos al repositorio desde cualquier clase de nuestro programa sin necesidad de instanciarlos cada vez de nuevo. ¿Es eso?
Tengo también una duda con relación a la creación de la interfaz (el punto 1): ¿Por qué se utilizan interfaces en lugar de objetos al inyectar las beans?
Muy buena explicación! muchas gracias
Muchas gracias por tus aportaciones Juan. Espero los videos de Spring como agua de mayo.
He aprendido más en videos de youtube o en Github, foros, etc que en libros de texto
Sos crack explicando, muchas gracias
Gracias. Muy buen material!
este curso es muy bueno ya solo falta el de PrimeFaces xd gracias por tus cursos
Buen curso, felicitaciones..
gracias por este nuevo video
Eres genial. Gracias por compartir.
2022, y animado de iniciar este curso
Gracias profesor
profe basado me encanta
Como siempre la critica que puedo dar es a tu favor. Gracias por estos videos Juan sigo con Python.
Excelente desde Ecuador
porfin entendi esto de la inyección de dependencias asdsad muchas gracias!
Gracias por tanto!!!
Mucha razón en cuanto al concepto en libros. Yo me quedo en las mismas en algunos casos y toca recurrir a vídeos o a otra documentación para poder entenderlo. Mi razonamiento es bajo. jajaja. Gracias por tus vídeos!
Hola juan esa inyección de dependencia se puede hacer de forma simultanea para las 3 clases o siempre hay que estar borrando uno por otro...
Tuve un problema en esta parte del curso debido a un fallo, la verdad, muy tonto. Lo voy a explicar por si a alguien le pasa lo mismo que no pierda el tiempo tontamente como yo lo hice. La cosa es así: cuando llegó el momento de lanzar el programa lo hice desde el xml en vez de desde la clase UsoEmpleados. Esto provocó que Eclipse me creara un xml adicional vacío llamado igual pero terminado en .out. Borré dicho archivo y a partir de ese momento dejó de funcionar el programa. Dandome este error en consola: "BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext". El caso es que no encontraba donde estaba el fallo y fue tras rehacer todo el proyecto desde el principio que me di cuenta de que en la linea de código en la que se crea el contexto Eclipse habia borrado el argumento. La linea de código del UsoEmpleados: "ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");" me la había cambiado por: "ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext();" Y claro al no encontrar el xml pues daba ese fallo...no me di cuenta porque no valoraba la opcion de que eclipse tras lanzar el proyecto desde el xml me pudiese tocar el codigo de la clase main de esa forma. Bueno espero que a alguien le sirva. y como siempre digo, gracias a Juan por enseñarnos siempre a dar cera y pulir cera antes del karaté.
Qué tal, profe!
Soy nuevo en la programación, nuevo en tu canal y ahora soy nuevo suscriptor también gracias a tu forma de explicar los temas!, muchas gracias por el esmero de explicar los temas que en general son poco abordados en youtube 🙌
Una pregunta, según entiendo, en este caso que es un ejemplo básico la interface "CreacionInformes" no es indispensable, cierto? Ya que en sí cada Objeto "Informe" se crearía como Atributo de la Clase "Empleado" y aún no existe otra Entidad/Clase Madre o Abstracta diferente a "Empleado" que tenga que generar informes, estoy en lo correcto, profe?
Me estaba mareando xdd porque mientras miraba el video , me preguntaba a que hora va a invocar a Informe . Hasta que vi el minuto 21:57 xdd y ya me quedo claro . Gracias por enseñarnos C:
Siiii graciad
Bien dicho a la gente normal nos cuesta bastante aprender solo con definiciones hay que hacer y practicar o escribir bastante codigo.
Bueno, a volver a ver este video por segunda vez ya q como siempre no entiendo a la primera.
gracias profe
Gracias!!!
Parece que estoy en la Universidad muy buena explicación.
Excelente!
gracias
Yo lo que entiendo que todo esta maremágnum de IoC y DI, es para flexibilizar el código central el core, para no tener que tocar el archivo donde se ejecuta la aplicación, el día de mañana si se necesita cambiar algo que sea en los módulos externos en el .xml...
como animó la jeringa,, jajaja muy bueno
que quilombo es esto, espero ver la luz en proximos videos. exelente como siempre sus cursos.
Buen día aquí la idea es bajar la dependencia entre las clases, es decir, que si se llega a cambiar el mensaje en la clase de Informes o se le va agregar algún texto de más, esto no me afecta mis otras clases a las cuales llaman al método de getInforme(), saludos desde Colombia
La interfaz empleados no podría ser mejor una clase abstracta? Lo digo por no repetir el constructor y el campo informeNuevo
7:15 ¿Esas animaciones las creas tú mismo? Si es así como te lo curras!! Gracias por tus vídeos.
Me encanta
Buenas!
No se si es algo tarde para comentar, pero tengo un problema al ejecutar el programa en el min 22:55.
Me salta el siguiente error:
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:\Users\kbermo\Desktop\Formación desarrollo\Curso Spring\ProyectoSpringUno\libs\spring-context-indexer-5.1.4.RELEASE-sources.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.springframework.context.index.processor.CandidateComponentsIndexer not in module
Entiendo que es cosa de las librerías, he probado a introducirlas en Clashpath en vez de Modulepath, pero entonces en UsoEmpleados, no reconoce ClassPathXmlApplicationContext
Seguro ya solucionaste, pero dejare mi aporte. A mi me ocurrió lo mismo que no me reconocía ClassPathXmlApplicationContext y en mi caso fue que cree las clases clickeando en la carpeta src y no en el paquete en que veníamos trabajando y eclipse metió las clases en el paquete por defecto por eso no reconocía la clase ClassPathXmlApplicationContext, borre el paquete por defecto y cree las clases en el paquete que venimos trabajando y ahí si me permitió importar el paquete correspondiente.
Chabon sos crack!
Profesor una consulta, spring boot utilizar de manera predeterminada el patron singleton que permite usar de manera global Una unica Instancia del objecto cuando hacemos la inyeccion, pero me surge una duda que sucede cuando 2 personas quieran utiliza ese objecto casi al mismo tiempo con datos diferentes no habria colision de datos ?. o como maneja spring esta parte para que los datos de ambas persona no se pierdan.
Un pequeño tip que no mencionas y que a lo mejor es de ayuda, si implementas primero la clase, y das click derecho en la misma, en las opciones de refactor esta la de implementar la interfaz automáticamente, ahorra algo de tiempo si tienes que hacerlo muchas veces como es en el caso de uso de Spring, el objetivo siempre es escribir lo menos posible, aprovecho para decir gracias por tus cursos, se Java gracias a ti!!
¿Por qué es necesario crear la Interfaz de Creación de Informes? ¿No se puede inyectar directamente el objeto Informe?
Con este ejemplo tan sencillo que tiene como único objetivo el enseñar qué es la inyección de dependencias utilizando algo de abstracción creando interfaces, sí. Pero con aplicaciones más complejas agradecerás el tener una interfaz y no tener que inyectar un objeto enorme. Como yo siempre digo: "en programación siempre hay varios caminos que te llevan a Roma. pero no todos los caminos son igual de cortos". Un saludo!
@@pildorasinformaticas Ok, gracias y saludos.
Increible pero la definicion de Wikipedia me alcanzó y sobró para entender a que hacia referencia inyeccion de dependencias jajajajaja gracias por sus cursos y el conocimiento libre profe!
Aquí me surge una duda. Decimos que un programa está modularizado cuando está compuesto de varias clases independientes y cohesivas (que tienen una función específica bien definida). Sin embargo, de la modularización surge el concepto de Dependencia que sugiere que las clases necesitan de otras para funcionar correctamente. No es esto una contradicción?
Muchas gracias profe por la explicación...Una consulta: No sé si sabrá esto, pero ¿se podrá relacionar el concepto con los @Inject en Angular?
Muy buenas Juan, excelente video.
Quiero comentarte que actualmente trabajo como Java Junior Dev
Si ya vi la mayor parte de tu curso de java ¿Me recomiendas hacer el curso tutorizado? Tiene material nuevo? El precio me parece bastante razonable (Soy Mexicano).
Me interesa mucho saber sobre los frameworks de java y las nuevas bondades de java 8, 9 y 10
De igual forma estoy dispuesto a hacer un pago por un curso impartido por usted.
Espero que lo considere.
Un Saludo
Hola Ricardo. El curso tutorizado es igual que el gratuito pero ignorando cosas obsoletas (por ejemplo los applets) e incorporando algunas nuevas( por ejemplo JavaFX). La diferencia entre ambos está que con el tutorizado resuelvo las dudas que os puedan surgir, hay ejercicios a desarrollar, hay ejercicios tipo test, habrá simulación examen OCA y OCP Oracle y también hay documentación PDF de cada tema. El curso está en elaboración, actualmente vamos por la clase 150 y subo nuevas clases todas las semanas. Debes valorarlo tú. En cuanto a materia no hay nada nuevo entre uno y otro. Un saludo!
Podrías indicar que tipo de actividades desempeña un Java Junior Dev (casos estandarizados, ya que cada empresa tiene su propio modelo de negocio)
Tu respuesta será de utilidad, ya que deseo trabajar en ello
Como pasarle mas de un parámetro a un constructor en concreto en el xml?
aún al iniciar tal como lo hiciste y al agregar el classpath con las librerias de spring y el apache logging, no me permite redactar como sentencia el ClassPathXml, y me propone, lo único distinto a crear la clase, agregar requires.spring.context al module-info. Intenté agregándolo y nada. ¿Que puede ser?