Java Records: How to use a Java Record in a Spring Boot Application

Sdílet
Vložit
  • čas přidán 28. 02. 2022
  • In this tutorial, you will learn about Java Records and how to use them in a Spring Boot Application. Records give you a way to create immutable data classes, cut down on verbosity, and improve readability. There are 3 really good use cases for using the Java Record type in Spring Boot and you will learn about 2 of them today.
    👋🏻 Connect with me:
    Website: www.danvega.dev
    Twitter: / therealdanvega
    Github: github.com/danvega
    LinkedIn: / danvega
    Newsletter: www.danvega.dev/newsletter
    SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️
  • Věda a technologie

Komentáře • 30

  • @uncopino
    @uncopino Před 2 lety +5

    yes please, i’d love a tutorial about records with springdata

    • @khajalieubarrie5088
      @khajalieubarrie5088 Před rokem

      Records can be used for defining DTO's but understanding how DTO's are manged in the persistence context will help in understanding how records can be used with springdata. This video is a thorough explanation on that:
      czcams.com/video/SyP258VgzSs/video.html

  • @aminesafi7261
    @aminesafi7261 Před 2 lety

    Great content, nice explanation, keep going 💪🏻

  • @kingstonmocktail7744
    @kingstonmocktail7744 Před 2 lety +19

    Would be great to see how we can use records in Spring Data

    • @DanVega
      @DanVega  Před 2 lety +10

      I will work on a tutorial for that. If you don't want to wait check out Spring Data JDBC, you won't be able to use them with JPA.

    • @uncopino
      @uncopino Před 2 lety

      @@DanVega i looked into spring data jdbc, found a tutorial and the guy said “it’s preferred to work with immutable classes”. is that the reason why it works with records?

    • @nomad5297
      @nomad5297 Před rokem

      Spring Dat JPA requires no args constructor and setters. record does not provide it

  • @letme4u
    @letme4u Před 2 lety +1

    nice presentation with clear understanding. Please provide next with Spring data

    • @DanVega
      @DanVega  Před 2 lety

      Will do, thanks for watching!

  • @kumarabhishek7877
    @kumarabhishek7877 Před 2 lety

    ++ Spring Boot Latest update, Dan you are awesome keep sharing the best of you.

  • @Pwjdjskw
    @Pwjdjskw Před 8 měsíci

    I was using Kotlin mainly because I love how simple it is to make data classes but now I am just finding out a very similar thing is in Java now?? Let’s go!

  • @Matlaps123
    @Matlaps123 Před rokem +1

    Fantastic. Please do the JPA!

    • @DanVega
      @DanVega  Před rokem

      You can’t use records with JPA

  • @felixnjunge78
    @felixnjunge78 Před 10 měsíci

    Hello Dan, while using records can I annotate, Json annotations, @Column annotations as I would one a normal class

  • @geoffreymakawa3554
    @geoffreymakawa3554 Před rokem +1

    Hey Dan, what plugin are you using to be able to get those intellisense auto completion suggestions ?

  • @jopadjr
    @jopadjr Před 2 lety

    9th.. Thanks.

  • @graflaszlo
    @graflaszlo Před rokem

    Just keep it in this way :-)

  • @MartenJurgenson
    @MartenJurgenson Před rokem +1

    Hi! What is the Intellij plugin that helps you to complete code? It is suggesting in grey.

  • @Adam-lx4et
    @Adam-lx4et Před 3 měsíci

    Looks good in theory but when record has a lot of properties then I can imagine its not great to read and write when using the constructor, in those cases a standard class with a lombok builder would be a more readable approach.

  • @layla.visuals3923
    @layla.visuals3923 Před rokem

    @configuration properties is throwing error with java records - Update your configuration so that classname is defined via @ConfigurationPropertiesScan or @EnableConfigurationProperties., even ehen using the above ending up with other error

  • @jassebozic2504
    @jassebozic2504 Před 7 měsíci

    👍

  • @domincwild
    @domincwild Před 2 lety +1

    What about classes which have a lot of properties? This is nice for small data classes, but what if it has something like 20 different properties that must be set?

    • @DanVega
      @DanVega  Před 2 lety

      It will work for those as well. I have IntelliJ automatically put each argument on a new line for readability.

    • @domincwild
      @domincwild Před 2 lety +1

      @@DanVega That's good. Although I'm mainly thinking about usage. So it would be readable inside the class, but when its used somewhere in the code, a 20 arg constructor is pretty unweildy. Say I wanted most of these values to have sensible defaults, but still be immutable and gain the advantage of a record type.
      Something usually solved with the builder pattern, but wondering if this could be applied in some way to simplify that.

    • @DanVega
      @DanVega  Před 2 lety

      There isn't much you can do in that case. You can't use the compact constructor to delegate to another constructor so setting defaults that way isn't possible. If you need something like that just use a regular class and use records where possible.

    • @jythejavaguy
      @jythejavaguy Před rokem

      @@domincwild One approach is to write custom constructors that delegate to the canonical constructor with default values. And if you need something more like a builder, there are third party libraries that provide builder functionality for Java Records, but you can write your own "wither" if you want:
      For example:
      record Point3D(int x, int y, int z) {
      Point3D() {
      this(0,0,0);
      }
      public Point3D withX(int newX) {
      return new Point3D(newX, y, z);
      }
      }
      var point = new Point3D();
      point = point.withX(5);

  • @glowiever
    @glowiever Před 2 lety

    I still feel scared that somehow there's a jpa bug waiting around somewhere when I use record...

  • @travellogger5080
    @travellogger5080 Před rokem

    Hm... Hm... Case class?