Inyección de dependencias con Spring Framework

Поделиться
HTML-код
  • Опубликовано: 19 янв 2025

Комментарии • 6

  • @IsmaelRobles
    @IsmaelRobles  3 года назад

    Curso "Programación web-dinámico" (playlist):
    ruclips.net/p/PL9Q_hx03xipJwVvqQlpQJDWBsDMM1KzVg

  • @fermiranda6680
    @fermiranda6680 2 года назад +1

    Tienes un don para explicar, excelente video.

  • @DericksonCaballero
    @DericksonCaballero Год назад

    Quiero darte las gracias por que alfin pude comprender por que, como y cuando es posible instanciar una clase diferente a la que se esta declarando -> Clase1 clase = new OtraClase;
    Explicas muy bien, deberías de hacer cursos mas nuevos y venderlos, ayudarías mucho a las personas que pagan exorbitantes cantidades de dinero en bootcamps y no logran comprender mucho.

  • @melchiah6603
    @melchiah6603 3 года назад +1

    Investigando sobre inversión de dependencias, y utilizando rl mecanismo de inyección de dependencias, he notado que en proyectos algunos en lugar de usar la anotación, crean un constructor. Es lo mismo ambas soluciones o tienen sus peculiaridades?

    • @IsmaelRobles
      @IsmaelRobles  3 года назад +4

      Esa es una pregunta muy interesante. En Spring existen 3 mecanismos básicos para hacer inyección de dependencias:
      - Usando un campo (como en el ejemplo del video).
      - Usando setters.
      - Usando el constructor.
      Las 3 opciones de manera general te permiten hacer lo mismo. En los inicios de Spring, el mecanismo preferido era vía setters (no había annotations, todo se configuraba por xml), incluso el mismo equipo de desarrolladores de Spring recomendaban su uso (ahora ya cambiaron de opinión). Esto en particular hizo que con el paso del tiempo, la mayoría de los ejemplos que uno se encuentra, es usando setters o campos.
      Sin embargo, algunas personas prefieren uno u otro mecanismos por diversas razones:
      - Hay algunos casos muy peculiares, en los que la inyección por setters o por campo es más configurable: como lo es tener que poner el annotation @Autowired(required = false) para ciertas dependencias (no para todas).
      - El uso del mecanismo de inyección con constructor es obligado si estás creando objetos inmutables (objetos que una vez creados ya no se puden modificar, como es el caso de las cadenas en Java).
      - La inicialización por constructor también obliga a indicar qué propiedades específicas requiere un objeto. Para algunas personas este mecanismo resulta muy útil en pruebas unitarias (pruebas en las que se verifica de manera aislada, cada funcionalidad de la aplicación). Al hacer la prueba unitaria se pasa al constructor objetos mock (objetos que simulan ser las dependencias) a fin de realizar la prueba unitaria. Aunque con el uso de setters se consigue lo mismo.
      En mi caso, prefiero el uso de constructor para objetos inmutables y en caso contrario configuración por campos (acompañados de sus setters y getters). En este momento la recomendación del equipo de Spring es usar inyección por constructor. Principalmente porque ahora se considera que crear objetos inmutables en la aplicación es una estrategia que puede facilitar el mantener el código y evitar cambios inesperados en la configuración de los objetos.
      Espero esta información resulte útil.
      Saludos.

  • @carlosmollapaza9267
    @carlosmollapaza9267 Год назад

    Te olvidaste del @Primary, para los Qualifier