Learn Dependency Injection and Write Better Code

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

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

  • @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?

    • @flyingrecordofficial
      @flyingrecordofficial 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 10 месяцев назад

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

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

      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.

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

    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.

  • @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 8 месяцев назад

      @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 2 месяца назад

      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 2 месяца назад

      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.

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

    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.

  • @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 9 месяцев назад

      Do you have it in digital format?

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

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

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

    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 7 месяцев назад

      @@mad616No it’s not lol

  • @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

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

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

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

    You're amazing! Saying hi from the Philippines.

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

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

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

    absolute amazing SOLID tutorial!

  • @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.

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

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

  • @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 😊❤

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

    Amazing explanation, Congrats from Brazil !!!!

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

    Very interesting and easy explanation! Thank you so much!

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

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

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

    Thank you so much! Fantastic explanation! 💛

  • @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

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

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

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

    Can't wait for the course to come out!

  • @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!!

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

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

  • @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.

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

    Excellent explanation.

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

    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?

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

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

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

    Wow, it's super helpful!

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

    Great explanation thank you

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

    Awesome explanation of DI

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

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

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

    Hi from Ukraine!

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

    Keep going.

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

    Great, Baraka allahou fik.

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

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

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

    Jazakallah brother

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

    Great explanation 👌
    Haji 😊

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

    Thank you! You explained it very clearly

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

    Thank you so much sir. ❤️

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

    May Allah reward you for those explanations.

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

    Great thanks so much bro

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

    Subscribed! thank you sir!

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

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

  • @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 .

  • @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..

  • @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

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

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

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

    Wa'alaykumsalam my brother

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

    Where is the previous video before this? you say: "earlier in this course we..." is that video available on RUclips? Or do we need to pay? And if so, where?

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

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

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

    its a good programing coure?
    sorry for bad englisch

  • @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.

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

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

  • @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.

  • @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?

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

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

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

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

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

    what's the previous video of this course?

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

    do u have a vid about testing in spring?

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

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

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

    Díky!

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

    NestJS does the same thing! Good tutorial thanks!

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

    great video. keep it going brother.

  • @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

  • @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

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

    Thank You brother

  • @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!

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

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

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

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

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

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

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

    keep up my friend always check new videos

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

    Thank you!

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

    great video !!

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

    Based video - as always!

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

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

  • @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.

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

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

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

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

  • @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⬆️.

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

    Usssalaam vaaleykum 👍👌

  • @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

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

    Waalekum assalam...

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

    Perfection.

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

    Liked immediately

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

    Waalaikum Salam brother

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

    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?

  • @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.

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

    Awesome

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

    Is there a play list?

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

    What's with emo service?

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

    Great!❤️

  • @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

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

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

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

    Make video on micro services

  • @navjotsingh2457
    @navjotsingh2457 Месяц назад

    Ty

  • @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.