Annotations In Java Tutorial - How To Create And Use Your Own Custom Annotations

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

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

  • @CodingWithJohn
    @CodingWithJohn  2 года назад +41

    Thanks to Mailgun for sponsoring this video! Head to mailgun.com/john to try Mailgun today.
    As a few commenters have mentioned, I forgot to note that you can also use enums as an annotation parameter.
    Let me know if you guys have other questions about annotations!

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

      Streams and Optional :) And thank you :)

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

      I was wondering, can we actually make annotations like in python where you would annotate a method so that something runs before and/or after the method has ran ?

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

      @@shlack Did you ask for junit ? If not just read about listeners in java, it could help you

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

      @Henryk Zschuppan config reader, good point for tutorial.

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

      Hi John, thank you for your videos, I'm not a programmer, I'm just an enthusiast and I want you to know what your videos are really helpful and worth watching.

  • @xslicer5779
    @xslicer5779 2 года назад +265

    Would be nice to see a part 2 where you have a preprocessor for the annotation so you won't have to write logic for a specific objcet to process the annotation, but instead to be processed where you apply it.

    • @leetaeryeo5269
      @leetaeryeo5269 2 года назад +40

      I was just gonna come here to suggest that. It would be cool to see something like an annotation for a field that generates getters/setters (I know this isn’t something you’d actually build, but just an example) or maybe a method timer that logs how long a decorated method takes to execute. Basically, it’d be nice to see an example that shows an executable use, in addition to the flagging and data storing usage.

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

      Man I second that! That would be great to learn!

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

      I think a good idea, is to implement a anotaciones to prevent null on getter or setter

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

      Yeah. This way it's just pointless.

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

      @@szalaytamas3184 now, let’s not go that far. There is definitely a use to these style of annotations. An actor model driven architecture can use these sorts of annotations to find and track which sorts of things to observe, for example. And a testing framework can use these sorts of annotations to mark which methods to test.

  • @sadeepaalwis5938
    @sadeepaalwis5938 2 года назад +16

    i always struggled with annotation when creating my custom ones without understanding it completely thank you very much john for this awesome explanation.

  • @codewithenthronekingsley
    @codewithenthronekingsley 6 месяцев назад +4

    Dear John, you are something else. All your tutorials are just great. Very well simplified, straight to the point, very educative and really impactful. I have learnt a lot from you. Infact, I always read a minimum of 10 articles on the internet about a particular topic am learning at any time, watch 10 RUclips tutorials on that topic from different tutors. I always use your tutorial to drive that concept deep in my spirit. Each time I watch your tutorial, I get a signal from my spirit saying "Enthrone" you have successfully sink this in. Keep it up man. A big fan from Nigeria West Africa.

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

    Although I have been working as a Java Software developer for more than a year, I learn something new from your videos all the time. Thanks for the tutorials. I wish I had such a Team Lead as you or worked in your team.

  • @Pierre-wl9gf
    @Pierre-wl9gf 2 года назад +76

    I love the way you explain in your videos. It is always clear and understandable. Most of all I always learn something. Thank you man. Greetings from France.

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

      Ouais on a pas des tutos comme ça nous...

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

    Can you please make a course on Spring boot, possiblty also incorporate databases with it and such. Your way of teaching is just unbeatable tbh...

  • @Speiger
    @Speiger 2 года назад +7

    I actually have a interesting case for Annotation.
    I am writing a pretty big mod that is synchronizing fields automatically through networking.
    So you just have to request the field name to be synchronized.
    What you have to do is add the "@NetworkField" Annotation to the Field and it will be automatically mapped to the networking manager.
    Which allows me to compress information down to 1 byte instead of having to write down the fields name, since they are automatically mapped I just write down the Index it was mapped to and send the data over with the index to then use that info to gather the index automatically.
    Another usecase is for plugins where a Annotation is the Indicator where a class might be a plugin. Which allows you to make modding support super easy for you or other people.

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

    I have been reading books and some articles on internet all day, and just watched this video... In 20 minutes I've understood much more then in the whole day
    Thank you very much!🙏

  • @misaelpereira9679
    @misaelpereira9679 2 года назад +80

    Java is a beatifull language❤️

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

    I read the title of the video: Start watching
    after completing 30% of the video: Liked
    reached the 70% mark: Subscribed.
    Thanks a ton.

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

    Hey John, thanks for all [public static final] videos. Please continue doing the good work.

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

    The moment I made the code work, you also showed Stella on the screen and it was the best payoff I have ever had aaw. Thanks for the videos, they have been great help for me for an interview preparation. Very clear explanations and examples.

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

    The way you teach any concept is just amazing.

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

    Thank you so much for this. I was especially surprised at how much reflection was required for processing!

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

    Finally someone who explains this in a clear way. Thank you John

  • @user-qg1qg2vi4c
    @user-qg1qg2vi4c 2 года назад +3

    Awesome! I didn't even know that you can handle object methods and object variables this way! Thank you so much!

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

      Yeah reflection is something. Like magic methods etc. In python.

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

    The best explanation I have seen covering Java annotations thank you

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

    Wow.! its crystal clear explanation..!

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

    What probably be production Use case for Custom Annotations.
    I can think of
    Initialisation and closing of connection

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

      We have found them useful particularly for annotating controller methods, to make it easy to accomplish things like validations that can be common to many, but not all of our endpoints. For example authorization, validation for particular header values, etc.

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

    So Simple , Crisp and Clear Explanation - with extra flavour of where to use it and where not to use. thank you very much

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

      I'm just amazed about how much more there is to learn and then apply it.

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

    I need a complete regular expressions tutorial to create "IP filters". The way you teach us is amazing

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

      Not sure when exactly I'll be able to get to it, but it's on the list!

  • @shoaibhasan5620
    @shoaibhasan5620 2 года назад +22

    Please john make a spring boot series. I really like the way you tech. I will love to learn spring boot from you. Specifically if you make a monolithic application from the scratch then move to microservices part. We the followers of yours looking forward to it. So much love and respect for you.

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

    best teacher for beginners and advanced.......even better than mosh

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

    Never leave me john.

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

    I love the trick of "instance of"

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

    Even when I watch a video that I already know about, I can learn something new.
    Thank you John!

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

    This video is about a not-so-trivial subject and still is so clear that it seems easy ✌ so great

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

    Thank you for explaining custom annotations in such a straightforward way.

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

    Man am I glad I found your channel, I was going crazy tying to learn Java from other videos. (I was actually about to give up and switch to Js lol)

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

    I'm not a java developer but I enjoyed your content.

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

    I was literally in the shower thinking about what you could do as the next topic, and then an older video of yours about arrays popped up in my recommendations, and I wanted to check if you posted a video which I might've missed, and bam.

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

    here again thanks alot for clarifying thing in the simplest term with an example. when using annotation alot in work. It really fascinating how the background thinggy work. Best Basic Java instructor in YT.

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

    Hi! John, I love the way you teach difficult topics with a hint of fun and humour, and that makes your videos effortless to understand. Could you please make your next video on regular expressions?

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

    How can we specify behavior in annotations? I have seen this before but I have no idea how to apply it!
    Thank you John for your videos!

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

    Good stuff. Congratulations on the sponsorship

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

    Thanks, John! Would love to see a lesson on Stream API for processing collections of objects.

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

    You're legend in explaining things, many thanks man.

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

    Hands down the best Java guru here on RUclips!! 👌

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

    Thanks John. It was short yet comprehensive.

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

    Thank you for the clear explanation. Can you explain why we can't use our own Type in the Annotation, but instead we can define them as enum or Class?

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

      Because if you were able to use your own type, you would have no way to specify a value for that element in an annotation, since you can't run methods or instantiate objects in an annotation.
      So for example, if you could have an annotation called Anno that takes in a value of type Cat, annotating something with it would require you to write @Anno(value = new Cat()), which is impossible, since element values aren't supposed to run logic, but can only use constant values.

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

    Nice.. very clear explanation. Thanks !

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

    Excepting part 2 with real time example scenarios. 😊

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

    I don't knew this syntatic sugar after instanceof, thanks!

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

    Been really enjoying the videos! Could you please do a video on the “static” keyword? :)

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

    Thank you very much John! I like to develop in Java very much. But today i learned something new. I like learning on a practical way very much, keep on the good work. Because there are not enough people where we can learn good things like this. I'm now a fan of your work.

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

    Great video man! I would love to see a tutorial on reflection one day!! It seems very interesting

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

    Thanks for such a quality explanation of Annotations.

  • @Felipe-yr5gm
    @Felipe-yr5gm 2 года назад +3

    John, I need to say... Your videos are freaking awesome! Excellent explanation.
    Could you bring more content about collections and how they work in deep, please?

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

    Thanks John! Would love to see a lesson on regular expressions (patterns)

  • @indel0425
    @indel0425 2 года назад +9

    Great video!
    Can you do separate video on getClass and Reflection?
    Also, can you do series on dependency injection.

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

    John you're an absolute LEGEND for the way you explain complex things in a simple way. Please continue being you and do what you're doing. Would love to see some more advanced Java topics as others has mentioned with annotations and reflection! What you've described in this video is also, what I assume, closely related to Aspect Oriented Programming or IS in all practical sense, AOT?

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

    John! You have amazing presentations and I am all for it. I went to subscribe right away, only to figure out I already am! Thank you for pumping out these videos. They are so helpful!

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

    It would be awesome if you did a video about annotation processors! There are not much tutorial online, and the one there are mostly use external libraries

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

    The best explanation ever. Thanks

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

    Stella is such a beautiful cat

  • @michaelfaraday2657
    @michaelfaraday2657 5 месяцев назад

    Best video about this topic I've ever seen!

  • @mohammed-usama
    @mohammed-usama 2 года назад +1

    Hi John, your video are very helpful.
    Can you please make a video about JRE, JDK and JVM

  • @Shraddhasree-w7b
    @Shraddhasree-w7b Год назад

    Hi John, Loved the way you teach. Please add a Java full stack or Spring boot series as well

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

    Hey,
    thank you for this video. I was always interested in annotations but never had the motivation to look at them.
    I also would like to have a video about the Factory Design Pattern.

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

    John - I know it is said a lot in here but I love your explanations. Even if I know the topic it is still great to watch

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

    Awesome video. Can you make one for Futures and completables? That would be great 😀

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

    Nice and simple explanation. Thanks!

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

    Could you make a Spring AOP kind of video with custom annotations and using the Pointcut expressions.

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

    13:28 This is what's done in recursion, declaration of a method without code block

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

    Hi John ! Thanks for all your videos. Your explanations are very precise, crystal clear and whenever I have a question, you answer it a few seconds later. Thanks a lot !
    I was looking for a video on java Streams which is a totally new subject for me. Your explanations on this would be really helpful. Thanks again for your work !

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

    This will be handy when I write my own ORM.

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

    Thank you, John! Your videos are very helpful.

  •  2 года назад

    Thank you, John!

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

    Heyo, you forgot to say, for parameters, you can use also Enums (without that Retention and Target Annotations would not work). Btw i love your videos, you have nice way to explain complicated things in few minutes understandable and then it seems pretty easy. Please dont stop with vids

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

    John, you are showing how to use custom annotation at runtime: there are methods that can determine if annotation present and/or obtain its value to be used in the code. What about compile time? What can be done with it? E.g. how to make compiler to skip portion of code depending on compile time annotation?

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

    I am learning about a couple of things, Annotations and Reflection and Aspect. However, I have a basic question, and focused on perhaps the CONTENT and CONTEXT of this video. The way John presents the topic and to use a Main method to check for Class/Method/Field annotation and if found (after looping), he does something. In this way, what real world application would we ever use a main method to loop to find annotation, then do something? (I get it that this is a tutorial of a subject not a specific application of the subject, but still am curious as to my question)

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

    You should do a jpa tutorial- that’s where the fun begins..,

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

    I'm mostly curious about how you'd implement custom annotations into your projects. Such as, why would you use them specifically, or how would you use them? Would you only use them on a specific class object? Because you'd have to loop through it using reflection? Or what if you have a class annotation, how would you check if a specific class is annotated without already knowing which class you add the annotation to? And if you already know that class is going to be annotated, why annotate it?

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

    you are awesome ❤️
    Best teacher 😘
    I like your teaching very much ❤️❤️❤️❤️❤️❤️❤️❤️

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

    Excellent video John!

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

    Awesome as always! Thanks for sharing!

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

    Nice explanation John.

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

    mast explain kiya John bhai

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

    Thank you very much for this explanation!

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

    Very well explained. I was wondering if you can reject the execution of a method using annotations? For example, if the method caller does not have certain requirement.

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

    Excellent video about implementing a custom annotation, great content, keep going!

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

    Thanx! Great and simple tutorial

  • @__-zv4qn
    @__-zv4qn 2 года назад

    Thank you so much! Finally i figured it out...

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

    awesome as always, your presention is so nice, thanks for sharing!

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

    Main content:
    ## What is annotations?
    The extra info that is used by compiler or yourself.
    - you put it right before the things your wanna annotate.
    ## how to create one?
    1. a special [[class]]
    1. use @Target(ElementType.?) to specify the types the annotations are for.
    2. use @Retention(RetentionPolicy.RUNTIME) to specify the timing.
    3. use @intervface before the class name(same as Annotation)
    2. It will be attached to the class(or methods or anything specified by @Target) annotated.
    1. some methods.
    3. Conclusion:
    1. the idea is to look at the class's annotation to act differently on it.
    4. how to use it on methods.
    5. how to do annotations with params
    ``` java
    //in the special [[class]]
    int times();
    //annotaion
    @runImmedieately(time = 3)
    //main methods
    annotation = get...();
    int _times = annotaion.times();
    ```
    1. types to use for these params: no special ones.
    2. it can has a default value.
    6. how to do it for a field.
    1. pretty much the same.

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

    I really enjoy your videos!!! I learn something new everyday with your videos all the time :) Also can I request on how to do method referencing? I really confuses and there's not good tutorials on youtube. Thanks!!!

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

    Great video and you explain the consepts very well! Now, you have one more subscriber. Greetings from Turkey!

  • @gouravkumar-or6jy
    @gouravkumar-or6jy 8 месяцев назад

    I am from india, really love your java videos, keep it up bro 🙏. Please make one video on Virtual Threads usage.

  • @NomadicAlfa
    @NomadicAlfa 3 месяца назад

    I have been working with java developing web applications for the past 3 years, i didn't know we can make our own custom annotations.

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

    Hi John, Can you give a tutorial on getting json data from a public url using java.

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

    thank you alot dear John

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

    John is the flipping MVP

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

    1:37 beginning

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

    It is a pleasure to watch your videos

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

    Amazing, Nice and easy explanation!

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

    Hey John! As always, very nice video. I always enjoy to watch your videos. Thanks for each and every one of them.
    In general, even if only briefly, could you talk about what books you would recommend, especially for beginners, on one subject or another. I know it is very individual. I would still be happy about your recommendation. I’m a beguines to programming and totally a fan of your way of explaining things. Thanks again for all your work.

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

    Thanks a lot, John! Very useful tutorial.

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

    Thanks John, it's helpful

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

    Hi John, this is a great tutorial, thank you for that!