Would you recommend courses, books, documentation, or jumping straight to a project and googling things along the way? I have a solid foundation of Java and want to start learning how to develop web apps with it.
Any help much appreciated
The way I learned Spring was basically by just being pushed into a Java project that was using it right after I finished uni. Tbh it was a bit overwhelming but I was able to slowly wrap my head around it in about a month or two. It was also the first “real” framework I ever used. Ever since then I started to just jump right into projects and try to grasp the basic concepts of the frameworks used, since they are mostly quite similar and try to expand my knowledge from there on. At least for me this worked well for NestJS, Flask, Django and somehow also for stuff like angular and Android development but there I had to put up with some formerly unknown concepts.
If you want a book that does a really good job of explaining the basics and laying the foundation of Spring from the ground up, then I recommend Spring Start Here. It’s the book I wish I had when I started working on Spring (Boot) projects all those years ago.
Thanks for the link!
I ended up working for a company which had a large Spring project and learnt by working on that. It didn’t seem too hard once I got my head around autowiring.
That was ten years ago, still using XML configuration files, and once I started working on projects with annotations instead things became a lot easier.
Same here. Went straight from University to working with Spring and learning by doing. By now you can actually use ChatGPT as a nice little mentor as well. It’s decent at explaining how things work if you don’t want to google everything.
When I was still at university, I started working on a place where Spring was used… they gave me a book called “Spring in Action” to read. I loved reading it and everything made much more sense after that… I highly recommend trying to get a deep understanding of something so central to an application like Spring before you start doing anything more advanced with it. You wouldn’t want to drive a F1 car without first learning how to do it properly, it may be fun at first but you’re likely to crash and burn.
If you aren’t familiar with dependency injection, that could prove a hurdle. Same for webflux/reactor. I would avoid using webflux until you feel more familiar with non-reactive spring. Otherwise it will feel overwhelming.
Not a professional, also learning, but one of the books I’ve been reading through is Spring Start Here: Learn what you need and learn it well
As someone who needs to understand the concepts first (instead of simply learning by doing), the guides by Marco Behler really helped. And the official documentation is great too!
I’ve learned through Udemy courses, more precisely through Chad Darby courses.
I was forced to use it because its the default web server framework at my mega-corp. I’ve been using it for almost 7 years now, and I think one of the reasons Spring is popular is because you can pick it up pretty easily if you’ve got an existing app with some examples to work in.
I think the only three core concepts you have to understand for Spring to make sense are (1) MVC architecture, (2) server-side templating and (3) dependency injection. If you have a reasonable idea of how these things work, you can muddle your way through the rest.
As with any framework or language, it depends on how you like to learn things and how quickly you need to start producing code.
I like to just jump in and read docs where necessary along the way. That doesn’t mean it’s the best way for you.