In this blog, I’ll outline why learning and mastering Spring Boot in 2023 is a worthwhile endeavor, even though there may be a few differing opinions. I’ll also explore how Spring Boot compares to other backend technologies and alternative Java frameworks.

  • eksb@programming.dev
    link
    fedilink
    English
    arrow-up
    21
    ·
    1 year ago

    While you are mastering Spring, I am mastering libraries that do the thing my program needs to do.

    While you are trying to debug to your Spring app, which is a huge PITA because Spring is a rat’s nest of conflicting configuration paradigms and overlays and fills your call stack with dozens of layers of generated methods, I have finished my work and am at the beach helping my coworker debug his Spring app because he didn’t listen to me when I said not to use Spring.

    • feef@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      Just out of curiosity, why do you find debugging in spring a huge PITA? Also what do you mean by conflicting config paradigms?

      Genuinely curious.

      • eksb@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Spring combines combinations of environment variables, system properties, files, and classpath resources, and handles a variety of patterns (e.g.: aConfigOption could be configured by system property A_CONFIG_OPTION, aConfigOption, or several other possibilities), so tracking down where the configuration came from is not always easy. Sometimes you think you can just set a property, but it turns out another property triggers loading a resource that overrides yours. This would be fine if applications/libraries clearly documented how to configure them, but most say “config via spring, good luck lol”.

        And good luck if you are trying to use two different components both built on Spring, and they both rely on the dependency injector settings “db.url”. Now you have to start playing games with dependency injector scopes.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      I’m curious how you handle API security. It’s a bit of a PITA with Spring but I couldn’t imagine handling all of it with one-off libraries. If you have a basic CLI type of program or something not meant to receive external traffic I can see how Spring can be overkill.

  • TCB13@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 year ago

    Better question is: do you want to work in companies that typical use Java? Those are governments, big banks etc? Typically companies with a LOT of bureaucracy and whatnot. If the answer is yes then learn it because you won’t be a day without a job. :)

  • snowe@programming.devM
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    It’s worth learning it just to understand how large complex DI frameworks work in general, allowing you to understand way more, like Quarkus, Micronaut, etc. even extending outside of Java/Kotlin.

  • manapropos@lemmy.basedcount.com
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    As someone who works with this framework for a living, don’t learn it on your free time. It’s absolutely worth learning vanilla Java, but you can learn Spring Boot on the job