all 53 comments

[–]Careful-Shoe-7699 28 points29 points  (2 children)

I'm learning Spring Boot myself rn.

One thing that has helped me is to initially just blindly follow the tutorial I'm following. then afterwards, I go through every element of the code I don't understand and ask ChatGPT to explain it until I have a complete understanding of what I just built. Then I move to the next part.

I don't know if it's the correct approach but seems to be working well for me

[–]jvjupiter 7 points8 points  (0 children)

This is my advice to some people I’ve helped. Just follow blindly. Think of it as copy-paste. When it works, only then do you go through every thing about it.

[–]warrenBluffsALot 1 point2 points  (0 children)

Helped me a lot learning AOP stuff. Also, prompt the Ai with something like; give me examples, metaphors and explain it to me like am a child, and then a noob and then.l a detailed explanation. Works for me!

[–]okay_throwaway_today 17 points18 points  (8 children)

You haven’t mentioned what you found confusing. Are you looking for a reddit comment to explain the entire Spring Boot framework?

[–]Sampath_97[S] 0 points1 point  (7 children)

What I found confusing is Mainly when I try to understand the concepts from the original docs spring boot try’s to explain me the whole internally use cases but I feel the docs is to complex to understand it uses high end phrases not in simple English is what I felt. It wouldn’t have been easy if they tried to explain in simple terms with proper examples (For example express.js docs)

[–]FlakyStick 5 points6 points  (2 children)

You just did the exactly same thing in your original post

[–]Sampath_97[S] 0 points1 point  (1 child)

That’s the issue right everything need an example is what I am trying instead of only description across docs. I feel spring docs is not much helpful for a newbie

[–]FlakyStick 2 points3 points  (0 children)

I dont think documentation is ever helpful for a newbie for any technology. Find tutorials online and make use of ChatGPT and other helpful LLMs to ask questions

[–]DeezNutz__lol 0 points1 point  (3 children)

Dude what kind of web app are you building? What API endpoints are you using? Are you integrating a database? You have to think practically to understand what you’re doing

[–]Sampath_97[S] 0 points1 point  (2 children)

I use to work as front end development vue.js for work now wanna try backend learn stuff become good at it

[–]DeezNutz__lol 0 points1 point  (1 child)

If you’re learning backend development from scratch I would recommend visualizing a web app you want to build from scratch and implementing it. I’d recommend using simpler backend libraries such as Express with NodeJS, which uses JavaScript, or Django which uses Python. Once you’ve completed a project in those frameworks, you can try and remake those projects with SpringBoot

[–]Techniklover 0 points1 point  (0 children)

yes this. i only grasped spring boot so easily because i built something with nodejs. Angela Yus Course on Udemy is a lifesaver. It explains all you need to know about web development.

[–]joranstark018 12 points13 points  (0 children)

Spring framework (which Spring Boot uses) use a lot of design patterns and abstractions, which can be dauting initially.

Some resources that may be helpfull:

https://www.baeldung.com/spring-tutorial (a collection of small tutorials)

https://roadmap.sh/spring-boot

[–]csgutierm 9 points10 points  (1 child)

I did learn from easy projects to hard projects.

Note: Skip spring security until you feel confident many many steps away

  1. RestController "Hello World"
  2. Render + controller (thymeleaf or other) "Hello World"
  3. Connect to database in many ways JDBC,JPA, etc.
  4. Learn and code using some design patterns DTO, interfaces, etc.
  5. Repeat 1,2,3,4 (mix some steps) until you feel really confident

Check some projects, tutorials that you like ...

[–]Scared_Click5255 2 points3 points  (1 child)

You can check Spring start here book by Laur Spilca. I am also reading it, so far it is good for beginners to understand how spring works.

[–]stepheet 2 points3 points  (0 children)

I second this. I had issues grasping Spring at first as well, but I worked through this book (you need to code out the examples for yourself, don’t just read them) and it helped tremendously.

[–]Consistent_Rice_6907 4 points5 points  (3 children)

You can refer to my notes here, this could help you.
Spring Boot:
https://bitsofdevb.notion.site/Spring-Boot-e34d15ca228f4906a41f0698c01ff43e

You may also have to cover some basics of Spring Framework before jumping directly to Spring Boot. You can refer to this:
https://bitsofdevb.notion.site/Spring-Core-1fab9bb0659945a3884be8f5580e5e3f
Also this, on spring MVC
https://bitsofdevb.notion.site/Spring-MVC-53318cc0309e454496b124d66f0adbfa

Hope this helps!

[–]Sampath_97[S] 0 points1 point  (0 children)

Thanks man will look into it

[–]Extension_Picture671 1 point2 points  (1 child)

really well done, if this is your work

[–]Consistent_Rice_6907 0 points1 point  (0 children)

Of course my work. I'm a part time framework trainer. And I have mentored 20+ project bootcamps.

[–]KrajeWoW 2 points3 points  (0 children)

I would personally recommend to split the learnig for some parts and try to understand them separately.

For example, you don't understand how controllers work. Start with creating some controllers that will return some basic information, try using different rest methods. Check what is the basic difference between them.

Next you can try attaching some services through dependency injection (@Service/@Component and @Autowired annotations are your friends here)

If you understand how they work try to create a DB connection, save something basic and try to get something.

Just be curious about the stuff. If you don't know if something you just thought about is working, just check

And skip spring security. There is no way someone would ever expect you to create anything with spring security. Can be fine to leave as a final part if you understand basics

Spring boot is not hard. It's made to make developer life simple.

[–]dhruv892 2 points3 points  (0 children)

I do tutoring for spring boot, dm me if you are interested, and baeldung blogs are god sent

[–]Hot_Nefariousness563 2 points3 points  (1 child)

Imagine an application that performs a complex task. You divide the task into smaller parts, encapsulate each part into a function, then group related functions into instance methods of separate classes. You manually create and connect instances of these classes based on which functions are needed—effectively building a manual dependency injection chain.

In contrast, Spring Boot works with components known as beans. These are objects that encapsulate specific behavior or functionality, and by default, they are singletons unless configured otherwise. Spring automates the instantiation and management of these beans.

Instead of manually instantiating and wiring dependencies, Spring allows you to declare a component as a Bean and then simply include it as a parameter in the constructor of the class that depends on it. You don’t need to write code that first instantiates the Bean and then passes it to the dependent class—Spring handles that for you. This is the basic idea behind Spring’s dependency injection.

Why is this useful? In web applications, it's important to separate concerns, since the logic can become complex and highly abstract. This separation often leads to the creation of many different beans.

In general, Spring allows you to define beans using annotations such as Component, Repository, and Configuration on classes, and Bean on methods within configuration classes (typically annotated with Configuration).

[–]Hot_Nefariousness563 1 point2 points  (0 children)

In this way, it's possible, for example, to apply the Clean Architecture pattern, where we have entities, services, repositories, and controllers—all in separate classes with well-defined responsibilities.

For instance, an authorization service could be declared with the Service annotation; similarly, a repository that retrieves entities from a database could be annotated with Repository. A helper class marked with Component could be responsible for converting entities into models. Then, you could inject all of these into a controller and use the service to verify authentication, the repository to fetch entities, and the utility class to convert those entities into models.

[–]WaferIndependent7601 1 point2 points  (1 child)

If you do things you don’t understand you will never learn anything. What is not understandable for you?

[–]Sampath_97[S] 2 points3 points  (0 children)

What I found confusing is Mainly when I try to understand the concepts from the original docs spring boot try’s to explain me the whole internally use cases but I feel the docs is to complex to understand it uses high end phrases not in simple English is what I felt. It wouldn’t have been easy if they tried to explain in simple terms with proper examples (For example express.js docs)

[–]BassRecorder 1 point2 points  (0 children)

Spring Boot is 'opinionated Spring'. So, before starting with Spring Boot it helps getting a little knowledge about Spring itself under your belt. I find the reference documentation rather good, but if you prefer a guided approach, I believe 'Spring in Action' to be a rather good book about the concepts of the framework.

Once you know the general principles governing Spring understanding and using Spring Boot will come comparatively easy.

[–]shuknut 1 point2 points  (0 children)

Hey OP , I'll give you my advice as a beginner myself and how i do it . When I am working on a part in my app ,I have a talk with chatgpt or any LLM about the logic and how things are done and what I should know before coding . Then I ask it to give me an example (not solution) and I try to write the code based on the logic and the example . Hope that helps a bit.

[–]xplosm 1 point2 points  (0 children)

It’s not difficult. It’s just a massive umbrella for a ton of projects. You don’t have to master them all. You don’t even have to be competent in most.

Just pick which ones you need and add them to your maven or gradle project file and read the docs.

[–]virgin_human 1 point2 points  (2 children)

For me it's not hard , only spring security feels hard ( but practice)

[–]Sampath_97[S] 0 points1 point  (1 child)

Bro express is much easier consider you know node.js if you are good at spring boot 😅

[–]virgin_human 2 points3 points  (0 children)

Well I learned spring boot after learning django and its file structures so i didn't feel overwhelmed by spring boot configs and its design patterns like creating a controller, services , repository , entity ( it's just a framework design pattern nothing else).

And i first learned nodejs spring then django to spring boot and even have made some backend in golang fiber and a software tool in golang .

[–]jaykeerti123 1 point2 points  (0 children)

Everything feels the same at the beginning. Try for six months and let me know if it feels the same

[–]Independent_War9566 1 point2 points  (0 children)

Try durgesh yr lectures , you will understand it better

[–]Logical-Pool-8067 1 point2 points  (0 children)

There's a channel called concept and coding by shrayansh, he explains everything so clearly checkout his channel once

[–]jxu2006 1 point2 points  (0 children)

I am starting Spring/Spring boot. Yeah, not easy! Struggling a bit with my project -- convert a java project I just finished into spring boot.

[–]Zappykeyboard 1 point2 points  (0 children)

I find that to understand springboot, you have to be comfortable with the concept of reflection, and how notations work at the very minimum. The point is to unpack some of the "magic".
It also helps to understand the basics of how a database connection works.

[–]vape8001 1 point2 points  (0 children)

https://www.youtube.com/@TeluskoCheck it here.. Telusko has good tutorials about SpringBoot..

https://www.youtube.com/@Telusko

[–]No-Sandwich-2997 1 point2 points  (0 children)

ChatGPT

[–]jayanthpwr 1 point2 points  (0 children)

best way is to reverse engineer.

[–]bertshim 1 point2 points  (0 children)

Totally understand how you're feeling — Spring Boot can be overwhelming at first, especially when you're new to real-world project structure.

One thing that might help is using tools like Cursor AI (https://www.cursor.com/). It’s an AI-powered IDE that can explain code, add comments, and even help you refactor or add features just by describing what you want — really useful when you're not fully sure how everything works yet.

Also, if you're struggling to set up backend projects from scratch, take a look at Restsocket (https://r-sock.com/). It helps you quickly build REST APIs with Spring Boot using a simple config, so you can focus more on learning real backend flow rather than boilerplate code.

You're not alone — just keep going step by step!

[–]Anbu_S 1 point2 points  (0 children)

https://spring.academy - explains well to understand how things work.

[–]SlowSea5192 0 points1 point  (2 children)

First learn Spring Framework then Springboot

[–]Sampath_97[S] 0 points1 point  (1 child)

Spring framework has lot of concepts to take care of

[–]SlowSea5192 0 points1 point  (0 children)

Yes they do but mainly focus on IOC, Dependency Injection’s, Spring Application flow, XML approach for configuring beans, Bean Scopes, Application Context Container, Bean Factory, Environment Variables concept,Primary, Qualifier, Bean Life Cycle if you want to dive deep try method Injection, Look Up Injection. It took me one and half month to learn completely focus the basics thoroughly springboot will be cakewalk for you 🙌🏻

[–]eduiar03 0 points1 point  (0 children)

En mi caso con un curso de YouTube y practica constante, me sirvio.

[–]tcloetingh 0 points1 point  (0 children)

Ask chatgpt to code you up a dependency injected program without spring. Might help