Learn Dependency Injection and Write Better Code

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

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

  • @amigoscode
    @amigoscode  2 года назад +19

    Register your interested for Amigoscode bootcamp here: amigoscode.hopp.to/bootcamp-register-interest

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

      Can you please do a video on how to create a java resume or portfolio. Especially for a backed developer?

    • @michelchaghoury9629
      @michelchaghoury9629 2 года назад

      Please can you make tutorials on DevOps, springboot BDD Testing, and more advanced topics and concepts, also how to do desktop app development with java

    • @JanardanMaithil
      @JanardanMaithil 2 года назад

      Thanks for the video. Loved the Intellij theme you have. Which one is it?

    • @Aljadeedstudio
      @Aljadeedstudio 2 года назад

      Salam Amigos

    • @contentparrot
      @contentparrot 2 года назад

      Walikomasalam,
      Thank you for not using the music brother. May Allah be please with you. ❤

  • @terrah33
    @terrah33 2 года назад +138

    Just a mention for the viewers: at @17:50 a class cannot be annotated with @Bean since its scope is limited to methods. Usually we use @Bean annotation on methods in a class annotated with @Configuration when we use external dependencies to generate beans for them. On the other hand, in order to mark a class as a bean we use the @Component annotation, which is a stereotype annotation (like @Service, @Repository and @Controller).

    • @erickjhormanromero6905
      @erickjhormanromero6905 2 года назад +11

      Good to had done this clarification may be a newbie in programming could have been a little confused

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

      @@erickjhormanromero6905 yeah....like me 😁...new in Spring

    • @victorbucci5760
      @victorbucci5760 11 месяцев назад

      Thanks for the info. I'm actually one of these newbies. I use quarkus but I'm still learning how things work under the hood.

  • @johnnya246
    @johnnya246 2 года назад +64

    The best explanation of the dependency injection and the singleton pattern! Simple and to the point!

    • @erickjhormanromero6905
      @erickjhormanromero6905 2 года назад +5

      He never explaind singleton design patten just mentioned it. 😃😃

    • @user-rl5pb5un2f
      @user-rl5pb5un2f 2 года назад

      Helpline📲📥⬆️
      Questions can come in⬆️

    • @SoniaChavez-je7hq
      @SoniaChavez-je7hq 11 месяцев назад

      @erickjhormanromero6905 yes he did, indirectly he did when he said that with singleton a connection class was instantiated just once, correct me if I m wrong.

    • @cameronmcnz
      @cameronmcnz 4 месяца назад +1

      Just to be clear, he did not describe DI at all. Instead, he described passing arguments to a constructor. What this video makes clear is that AmigosCode actually has no idea what dependency injection is, and ill-informed content like this only leads to more confusion. Trust me, calling a parameterized constructor is not DI by any stretch of the imagination.

  • @Secretclaps
    @Secretclaps Год назад +7

    Amazing! best injection tutorial I saw until this point . The issue with injection is that is so simple it is hard to understand, it is something that comes naturally.

    • @cameronmcnz
      @cameronmcnz 4 месяца назад

      Unfortunately, what he describes as DI is simply passing a parameter to a constructor. That is not DI by any stretch of the imagination, and it makes it clear that the presenter doesn't actually know what dependency injection is.

  • @Diego-Garcia
    @Diego-Garcia Год назад +4

    Now everything make sense!!! That's why people create an Interface for every class; that's why people assign every field inside the constructor.
    The Interfaces are created to decouple the "true" class, being able to pass other objects with the same signature, LIKE A MOCK CLASS.

  • @_freeworld
    @_freeworld 8 месяцев назад

    I'm an android developer and I needed to understand dependency injection, I think this video has given me an idea of when dependency inject is about.

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

    Díky!

  • @ahmedbishree9429
    @ahmedbishree9429 2 года назад +2

    Thanks bro again you nailed it, I've read a lot of books about the dependencies injections but I couldn't find what I was looking for, lastly I can get my head around it in this video. my ALLAH bless you

  • @bartex10101
    @bartex10101 2 года назад +28

    I think that your explanation of dependency incjection in pure java is quite good. On the other hans I think you should say something about pross and cons of context dependency injection. There is some problems with it and it should not be used as remedy for everything. For example in huge applications when you have thousands of services etc. it may become bean hell where dependency tree will looks like spaghetti cause of beans flying everywhere. Another drawback is that if you make your class a singleton bean and this class (for example service) is used only from time to time it still wastes memory. Garbage collector can't collect it even if you stoped to use this class way ago. So people of java don't be afraid to instantiate objects with new () keyword! :D
    Sorry for mistakes, English language is not my native language ;)

    • @rafaelrosa3841
      @rafaelrosa3841 2 года назад +2

      perfect.. people is very naive when coding with this patterns. And call the new operator of "bad code" is funny.

    • @henriquesenadev2194
      @henriquesenadev2194 2 года назад +2

      Great comment

    • @eufraniodiogo50
      @eufraniodiogo50 2 года назад +5

      Thanks, dude, for explaining to us that it's not the world saver and it could not be the best approach to take in all cases. Thanks, and about your English it's fine, it's not also my native language.

  • @andrekreou1
    @andrekreou1 2 года назад +4

    Just in time! I am writing my MSc thesis and this information is valuable!

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

      dependency injection is a bachelor 2. semester concept man 😶

    • @andiuptown1711
      @andiuptown1711 10 месяцев назад

      @@mad616No it’s not lol

  • @nguyenminh1402
    @nguyenminh1402 8 месяцев назад

    I always love your tutorial. You make everything clear and simple.

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

    You're amazing! Saying hi from the Philippines.

  • @paulo__vieira
    @paulo__vieira 2 года назад +8

    For those who wanna learn about Beans with details, I recommend the Spring Start Here book from Laur Spilca, it's an introductory book about Spring where the author use some analogies to explain about beans, it's quite interesting.

    • @alexisdona
      @alexisdona 11 месяцев назад

      Do you have it in digital format?

    • @andiuptown1711
      @andiuptown1711 10 месяцев назад

      @@alexisdonasearch it on Reddit, I found it there!

  • @michailmarkou1995
    @michailmarkou1995 2 года назад +3

    absolute amazing SOLID tutorial!

  • @thEstRonG3r
    @thEstRonG3r 2 года назад +3

    Just small thing, at 15:55, if HEAP is full, you will get OutOfMemoryError, and not StackOverflowError.

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

    Thank you so much! Fantastic explanation! 💛

  • @haihoangninh3237
    @haihoangninh3237 2 года назад

    I've been stuck to this for days, thank you!

  • @franke1917
    @franke1917 10 месяцев назад

    Very interesting and easy explanation! Thank you so much!

  • @SoniaChavez-je7hq
    @SoniaChavez-je7hq 11 месяцев назад

    It was easy to understand this idea with your explanation, thx

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

    Assalamwalaikum. Thank you for the video. May Allah bless you with all of His blessings. You are a great teacher and just learning from you is just so easy than from other resources 😊❤

  • @Griefed_
    @Griefed_ 2 года назад +5

    Awesome video, thank you very much!
    Looking forward to the DI videos. I hope you give us a glimpse of manually doing singleton DI just to show us how it is done, in case one does not use Spring or something else.

    • @erickjhormanromero6905
      @erickjhormanromero6905 2 года назад

      I don't know why you need this if Spring is one of the most used java framework and will do all for you. but check this.
      To achive that is just to check if there's already a instance on such dependecny to be injected in the constractor of the target class and return the same instance. ruclips.net/video/tSZn4wkBIu8/видео.html

  • @ahmaddawood9691
    @ahmaddawood9691 2 года назад

    This is really excellent tutorial on dependency injection ..... thanks

  • @cameronmcnz
    @cameronmcnz 4 месяца назад +5

    Just for the record, your understanding of dependency injection is completely off base, and I'd go so far as to say posting incorrect information like this is irresponsible. At 10:10 you suggest that passing an argument to a constructor is dependency injection. That shows a complete and total misunderstanding of DI. We were passing values to parameterized constructors decades before the term DI was coined. That's not DI, that's just a basic programming concept. I mean, does anyone actually think signers of the Agile Manifesto invented the term DI just to describe the idea of passing an argument to a method?🤦‍♂

  • @SerdarPolat21
    @SerdarPolat21 2 года назад

    MashaAllah brother. You are talented. I'm learning from your videos. And I am adapting it to Dart language.

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

    So dependency injection is what's being used in MVP is it at Presenter to be specific? I am currently familiarizing my self to the patterns, and so far, i think patterns are awesome.

  • @SiyaNtombela
    @SiyaNtombela 2 года назад

    Can't wait for the course to come out!

  • @RicardoSilvaTripcall
    @RicardoSilvaTripcall 2 года назад

    Amazing explanation, Congrats from Brazil !!!!

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

    RUclips insists on showing me Java code... as a JavaScript developer - but big fan of dependency injection in general. Works in a functional context as well (i.e. split stuff in more functions, pass stuff needed as params rather than make "scope" do all the lifting) - then test the functions directly.

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

    Wow, it's super helpful!

  • @nestoralmarza5732
    @nestoralmarza5732 2 года назад +2

    great video! cyclic dependency is a great topic for a future video.

  • @vyylight
    @vyylight 2 года назад

    Thank you so much sir. ❤️

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

    Great explanation thank you

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

    Jazakallah brother

  • @marzenalaaeddine
    @marzenalaaeddine 2 года назад

    Great, Baraka allahou fik.

  • @kvojps-yt
    @kvojps-yt Год назад +2

    I had a doubt. In your Spring boot tutorials, @Autowired is not used. The class is annotated with @RequiredArgsConstructor and the dependency attributes are declared as final. In this video, I understood that @Autowired is used to inject the dependency instance that was found. Why is @Autowired not used in the construction of your Spring projects? Thank you for everything, I'm a big fan of yours!!

  • @kuchdarith
    @kuchdarith 2 года назад

    Wow, the best video for beginners. Thanks sir for your video, so sweet explants about the proccessing.

  • @mohsenzahabipour40
    @mohsenzahabipour40 2 года назад

    Great explanation 👌
    Haji 😊

  • @teachermartin8251
    @teachermartin8251 2 года назад

    Awesome explanation of DI

  • @optimisticenigma283
    @optimisticenigma283 9 месяцев назад

    Is this part of a course playlist, because I can't find the other videos he refers to when saying "earlier we talked about" or "we'll cover this later on".
    I genuinely liked the explanations and so was wondering where I can find the full playlist?

  • @pstlvictoras
    @pstlvictoras 2 года назад

    Subscribed! thank you sir!

  • @89Valkyrie
    @89Valkyrie 2 года назад

    Excellent explanation.

  • @kunnudev7250
    @kunnudev7250 2 года назад

    Great thanks so much bro

  • @Ezzedini
    @Ezzedini 2 года назад

    is there a video after this to recommend to understand the rest of annotations in spring framework?

  • @liledg2357
    @liledg2357 2 года назад

    19:30 Do we really need to put either @Autowired or @Inject at the constructor? I thought spring sees the constructor argument and automatically injects the dependency

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

      yupp put autowired annotation so it can be automatically injected

  • @jeff_tech
    @jeff_tech 2 года назад

    Thank you! You explained it very clearly

  • @world-observer3460
    @world-observer3460 Год назад

    The DI concept is confusing me for a while util i see this clip. Really good work Bro.

  • @KailashJNirmal
    @KailashJNirmal 2 года назад

    Thanks for the tutorial Brother. Thanks for sharing . Your english so easy to understand. How do you record your video? Do you use some special device ? I liked your Java series .

  • @willofd1683
    @willofd1683 2 года назад

    HI! PLease which app are you using to make this schema? Thanks

  • @xeyalteyyubov1175
    @xeyalteyyubov1175 Год назад +1

    Keep going.

  • @evgeniy_lukas
    @evgeniy_lukas 2 года назад +34

    Hi from Ukraine!

  • @hamzaa7335
    @hamzaa7335 2 года назад

    Bro I love your Videos, where you learned this all?

  • @pablo-2349
    @pablo-2349 2 года назад

    its a good programing coure?
    sorry for bad englisch

  • @Kim-tr5op
    @Kim-tr5op 2 года назад

    do u have a vid about testing in spring?

  • @ahmedbishree9429
    @ahmedbishree9429 2 года назад

    Essalamo Aleykum bro is there any book that you can advise us with to get a deep understanding for the dependencies injection?

  • @borhan_sahed
    @borhan_sahed 2 года назад

    Assalamu alaikum brother. Your videos are too good.
    Will the bootcamp be available free of cost ?

  • @frodggy2714
    @frodggy2714 2 года назад

    great video. keep it going brother.

  • @SeanCarter
    @SeanCarter 2 года назад

    What’s that lighting setup?
    The video is crispy.

  • @kareem7236
    @kareem7236 2 года назад

    Salam alikum Amigo ,
    What should I now to be ready to start with Spring ?
    Pleas let me now 🤗

  • @Mrboo9413
    @Mrboo9413 2 года назад

    May Allah reward you for those explanations.

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

    is the boot-Camp free or? and also is it online? ....and if possible can @Amigoscode make a separate video explaining in a bit of depth how the boot-Camp will carry out, because i have a lot of questions about i have i am very much interested in joining

  • @jenaman0001
    @jenaman0001 2 года назад

    Hi @Amigoscode,
    You have beautifully explained the DI. I have one question here. I am using DI using and have a situation like below
    public class Demo {
    private CarDAO carDao;
    private NewCar newCar;
    public Demo (CarDAO carDao){
    this.carDao = carDao;
    newCar = new NewCar(this.carDao);
    }
    Can you please guide how to handle this situation ... without instantiating the newCar in the constructor..

  • @yaphetb5717
    @yaphetb5717 2 года назад

    Thanks for this video nelson✌. Can you cosider doing a video on payment integration in spring boot?

  • @umitkirtil
    @umitkirtil 2 года назад

    thank you for great tips and concept topics like this. Asselamu aleikum

    • @user-rl5pb5un2f
      @user-rl5pb5un2f 2 года назад

      Helpline📲📥⬆️
      Questions can come in⬆️.

  • @mariazinchyn
    @mariazinchyn 2 года назад

    Thank you!

  • @talbiabdelali5914
    @talbiabdelali5914 2 года назад

    Thank you bro for all the content you bring toi us realy so helpful. I want just to Ask you to do more vidéo on java even the easiest Java topics it will be very for everyone. For exemple Can you make a vidéo about exceptions how jvm please bro!

  • @deltamakuba
    @deltamakuba 2 года назад

    Thank You brother

  • @lisafox9026
    @lisafox9026 9 месяцев назад

    9:16 if Carservice has 10 fileds, it must be 10 parameters in condtructor?

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

    what's the previous video of this course?

  • @murrayKorir
    @murrayKorir 2 года назад

    If Spring boot was never invented I would never have continued and loved java.

  • @YT-vx9sz
    @YT-vx9sz 2 года назад +1

    Bro I was just searching for a good video on this topic😂

  • @bahmad2009
    @bahmad2009 2 года назад

    Usssalaam vaaleykum 👍👌

  • @VforVanish
    @VforVanish 2 года назад

    NestJS does the same thing! Good tutorial thanks!

  • @xiaocatcat
    @xiaocatcat 2 года назад

    Hope you explain more about OOP. Thanks

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

    Qual o tema e a fonte que você está usando? Ótimo conteúdo

  • @tanoryjakaperdana1419
    @tanoryjakaperdana1419 6 месяцев назад

    Wa'alaykumsalam my brother

  • @alessiobino8248
    @alessiobino8248 2 года назад

    great video !!

  • @mohammadsaht5602
    @mohammadsaht5602 2 года назад

    keep up my friend always check new videos

  • @KlanBr1
    @KlanBr1 2 года назад

    great video. This video belongs to a playlist? in that case, what is the link of that list where you can find, for example, the video in which you talk about the annotations like the @Bean

  • @hitstick567
    @hitstick567 2 года назад

    Can you do a video on programminng to interfaces in Java?

  • @hamza_Techy
    @hamza_Techy 2 года назад

    Great!❤️

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

    Then why do we use @Autowired annotation? How is it different from this scenario?

  • @boristhedestroyerofancient508
    @boristhedestroyerofancient508 2 года назад

    Based video - as always!

  • @MwauraXavier
    @MwauraXavier 2 года назад

    Perfection.

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

    Aren't you defeating the purpose of dependency injection by implementing with concrete implementations instead of interfaces, you still have a tightly coupled dependency? I haven't used @Bean so maybe this solves the problem.

  • @jivanmainali1742
    @jivanmainali1742 2 года назад

    Could not get how DI makes testable and loosely coupled code?

  • @lrzero1362
    @lrzero1362 2 года назад

    It's an awesome video, I just still have a small question, can you explain a little bit more what the purpose of the annotation @Autowire is. That's the only thing I'm still kinda confused about. Thank you in advance.

  • @CarlosVera-jy7iy
    @CarlosVera-jy7iy 2 года назад

    Greetings amigos code, because I do not receive any information from the bootcamp to my email I have already registered

  • @FilipCodes
    @FilipCodes 2 года назад

    Liked immediately

  • @aoboyang8735
    @aoboyang8735 2 года назад

    Is there a play list?

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

    Awesome

  • @navjotsingh2457
    @navjotsingh2457 4 месяца назад

    Ty

  • @luisuran4050
    @luisuran4050 2 года назад

    What's with emo service?

  • @ElvinMayenCarrillo
    @ElvinMayenCarrillo 2 года назад

    I'm currently studying for a backend position and I need to learn dependency injection on python, currently trying to implement it on my own linked list with its own node class, could anyone provide an example or explain more or less how could I actually implement dependency injection?

  • @studdiougrym5633
    @studdiougrym5633 Год назад +1

    umm, bruh, isn't what you're doing just DIP? I thought Depency injection requires a plugin to dinamically inject dependencies into our classes. it looks like you're doing it manually tho.

  • @KangoV
    @KangoV 2 года назад

    Good video. When you learn clean architecture you'll realise you should not inject an infrastructure instance (DAO) into your domain (service). Create a CarRepository interface in you domain layer and implement it in your infrastructure layer. Your DAO instance(s) are injected into a CarRepositoryJpa (for example) implementation. The domain (business) layer then stays clean. The domain only ever uses the CarRepository interface.

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

      i think you have a misundestanding about domain and bussines.
      Domain is the entity that you need to make some operaration and service (Bussiness) is where you add all the logic of your bussiness and use CarRepositoryJpa and domain as well.
      You don't need to use DAO today for that reason you have JPA. we usually did that when we worked with SQL queries and even wanting use DAO we have JPA to perform SQL queries (they called JPQL queries ).

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

      @@erickjhormanromero6905 , I understood the comment such that the term "domain" is used like in DDD (domain-driven design) as opposed to something DI/IoC specific.

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

    Make video on micro services

  • @hamednikbakht9708
    @hamednikbakht9708 2 года назад

    hi please upload video from best way for read and write json file and mapping to requestClass and send for api

    • @erickjhormanromero6905
      @erickjhormanromero6905 2 года назад

      Just create your json file as a resources , serialize it to a class using ObjectMapper or GSON, mapper to a DTO and then return it. or insted of using a DTO design patten just return using GSON

  • @ivanivanov7617
    @ivanivanov7617 2 года назад

    No need for @Autowired for the constructor because Spring is smart enough to do it for us except cases with multiple constructors.

  • @zafarjonolimov2953
    @zafarjonolimov2953 2 года назад

    Waalekum assalam...

  • @HousseinDroubi-o9i
    @HousseinDroubi-o9i 9 месяцев назад

    وعليكم السلام ورحمة الله, الحمد لله.