Learn Dependency Injection and Write Better Code

Поділитися
Вставка
  • Опубліковано 25 лис 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.

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

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

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

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

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

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

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

  • @nguyenminh1402
    @nguyenminh1402 5 місяців тому

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

  • @JulianSloman
    @JulianSloman Рік тому

    UA-cam 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.

  • @thEstRonG3r
    @thEstRonG3r 2 роки тому +3

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

  • @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. ua-cam.com/video/tSZn4wkBIu8/v-deo.html

  • @jaymarkalvarez9851
    @jaymarkalvarez9851 2 роки тому +1

    You're amazing! Saying hi from the Philippines.

  • @franke1917
    @franke1917 7 місяців тому

    Very interesting and easy explanation! Thank you so much!

  • @SoniaChavez-je7hq
    @SoniaChavez-je7hq 8 місяців тому

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

  • @michailmarkou1995
    @michailmarkou1995 2 роки тому +3

    absolute amazing SOLID tutorial!

  • @ahmaddawood9691
    @ahmaddawood9691 2 роки тому

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

  • @SerdarPolat21
    @SerdarPolat21 2 роки тому

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

  • @kostiantynkarzhanov9216
    @kostiantynkarzhanov9216 9 місяців тому

    Thank you so much! Fantastic explanation! 💛

  • @world-observer3460
    @world-observer3460 Рік тому

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

  • @haihoangninh3237
    @haihoangninh3237 2 роки тому

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

  • @RicardoSilvaTripcall
    @RicardoSilvaTripcall 2 роки тому

    Amazing explanation, Congrats from Brazil !!!!

  • @SiyaNtombela
    @SiyaNtombela 2 роки тому

    Can't wait for the course to come out!

  • @Dzikrullah_999
    @Dzikrullah_999 Рік тому

    Jazakallah brother

  • @betultultay1615
    @betultultay1615 Рік тому

    Great explanation thank you

  • @evgeniy_lukas
    @evgeniy_lukas 2 роки тому +34

    Hi from Ukraine!

  • @xeyalteyyubov1175
    @xeyalteyyubov1175 Рік тому +1

    Keep going.

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

  • @89Valkyrie
    @89Valkyrie 2 роки тому

    Excellent explanation.

  • @marzenalaaeddine
    @marzenalaaeddine 2 роки тому

    Great, Baraka allahou fik.

  • @IzabelaLuka
    @IzabelaLuka Рік тому

    Wow, it's super helpful!

  • @kuchdarith
    @kuchdarith 2 роки тому

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

  • @Mrboo9413
    @Mrboo9413 2 роки тому

    May Allah reward you for those explanations.

  • @nestoralmarza5732
    @nestoralmarza5732 2 роки тому +2

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

  • @kunnudev7250
    @kunnudev7250 Рік тому

    Great thanks so much bro

  • @vyylight
    @vyylight Рік тому

    Thank you so much sir. ❤️

  • @teachermartin8251
    @teachermartin8251 2 роки тому

    Awesome explanation of DI

  • @pstlvictoras
    @pstlvictoras 2 роки тому

    Subscribed! thank you sir!

  • @jeff_tech
    @jeff_tech 2 роки тому

    Thank you! You explained it very clearly

  • @mohsenzahabipour40
    @mohsenzahabipour40 2 роки тому

    Great explanation 👌
    Haji 😊

  • @xiaocatcat
    @xiaocatcat 2 роки тому

    Hope you explain more about OOP. Thanks

  • @murrayKorir
    @murrayKorir Рік тому

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

  • @grzegorzmolin
    @grzegorzmolin Рік тому

    Díky!

  • @hamzaa7335
    @hamzaa7335 2 роки тому

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

  • @tanoryjakaperdana1419
    @tanoryjakaperdana1419 4 місяці тому

    Wa'alaykumsalam my brother

  • @VforVanish
    @VforVanish 2 роки тому

    NestJS does the same thing! Good tutorial thanks!

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

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

  • @yaphetb5717
    @yaphetb5717 2 роки тому

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

  • @hitstick567
    @hitstick567 2 роки тому

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

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

  • @deltamakuba
    @deltamakuba 2 роки тому

    Thank You brother

  • @mariazinchyn
    @mariazinchyn 2 роки тому

    Thank you!

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

  • @bahmad2009
    @bahmad2009 2 роки тому

    Usssalaam vaaleykum 👍👌

  • @cameronmcnz
    @cameronmcnz 2 місяці тому +2

    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?🤦‍♂

  • @navjotsingh2457
    @navjotsingh2457 Місяць тому

    Ty

  • @mohammadsaht5602
    @mohammadsaht5602 2 роки тому

    keep up my friend always check new videos

  • @YT-vx9sz
    @YT-vx9sz 2 роки тому +1

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

  • @alessiobino8248
    @alessiobino8248 2 роки тому

    great video !!

  • @frodggy2714
    @frodggy2714 2 роки тому

    great video. keep it going brother.

  • @borhan_sahed
    @borhan_sahed 2 роки тому

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

  • @zafarjonolimov2953
    @zafarjonolimov2953 2 роки тому

    Waalekum assalam...

  • @sharadsingh2856
    @sharadsingh2856 Рік тому

    Awesome

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

  • @MwauraXavier
    @MwauraXavier 2 роки тому

    Perfection.

  • @SeanCarter
    @SeanCarter 2 роки тому

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

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

  • @boristhedestroyerofancient508
    @boristhedestroyerofancient508 2 роки тому

    Based video - as always!

  • @hamza_Techy
    @hamza_Techy 2 роки тому

    Great!❤️

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

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

  • @Ezzedini
    @Ezzedini 2 роки тому

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

  • @kareem7236
    @kareem7236 2 роки тому

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

  • @m5a1stuart83
    @m5a1stuart83 2 роки тому

    Waalaikum Salam brother

  • @joaosantos6868
    @joaosantos6868 2 роки тому +1

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

  • @HousseinDroubi-o9i
    @HousseinDroubi-o9i 6 місяців тому

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

  • @FilipCodes
    @FilipCodes 2 роки тому

    Liked immediately

  • @San.Man___
    @San.Man___ 6 місяців тому

    CDI in Jakarta EE😄

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

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

  • @Kim-tr5op
    @Kim-tr5op 2 роки тому

    do u have a vid about testing in spring?

  • @billszy794
    @billszy794 2 роки тому

    Wa lakim alsaalam

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

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

  • @scottcooper6644
    @scottcooper6644 2 роки тому

    Legend

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

  • @willofd1683
    @willofd1683 2 роки тому

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

  • @Aswodel
    @Aswodel 9 місяців тому

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

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

  • @thapelomorare1484
    @thapelomorare1484 2 роки тому

    Do Jsp and servlets

  • @taneatrifon6627
    @taneatrifon6627 Рік тому

    what's the previous video of this course?

  • @pablo-2349
    @pablo-2349 2 роки тому

    its a good programing coure?
    sorry for bad englisch

  • @lisafox9026
    @lisafox9026 7 місяців тому

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

  • @jivanmainali1742
    @jivanmainali1742 2 роки тому

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

  • @patrickigiraneza2947
    @patrickigiraneza2947 Рік тому

    💡