I'm in a real struggle to pick a book about Spring/Spring boot . I spend hours reading comments about books in amazon reviews/forums/blogs., but still can't decide.
When I was learning java. I started with Head First Java. And it was great book. Very detailed covered concepts like inheritance, polymorphism, memory(heap/stack) in such a depth and gave me very much knowledge. No video course or tutorial cover those things in such details as in Head First.
Maybe there's a book for Spring/Spring boot similar to Head First Java? By similar I mean that book should explain concepts and flow of the app, and not like this "Now put this annotation here, this code there and we have app which does that and that" .
For example I really want to now about messaging, but I looked at content of some books and there's mainly a code to implement messaging. But no clear example of it's usages and what's the benefit from it in our application.
I have Spring In Action 5, read maybe 70% of it, and it just doesn't work for me. In the beginning it was ok, of course errors in code, unimplemented methods/classes made me spend additional time to make thing work. But I didn't like later chapters at all, for example:
I really wanted to learn messaging(jms/rabbitmq). I didn't understand messaging from this book, we just putted annotations, implemented sender/listener/receiver classes. Sender sends, receiver - receives, but book doesn't properly say what it sends, how it listens and etc. We implement our application - "Taco Cloud" in this book and there wasn't an example how messaging works, why we need it in our application. Also code won't compile because we have tacos.Ingredient class, and then we have another Ingredient class in messaging package tacos.messaging.rabbitMQ.Ingredient which is different from Ingredient class in tacos package. And I found this only in github code, in a book there's no mention about this and why we need another Ingredient class in tacos.messaging.rabbitMQ package.
At the beggining we have class DesignTacoController where we put taco Ingredients to Model object. In /design user can select ingredients for his taco. Later in the book DesignTacoController just disappears. I ran code from github, and in localhost/design we get: Select your ingredients: (empty), and Submit button, but you get an error because user has to select at least one Ingredient and this point author talks how to implement recentTacos functionality, but how can you get recent tacos, if user cant get pass through select ingredients to make taco in first place.
posted 1 month ago
For now I think to start with
Professional Java for Web Applications - Nicholas S. Williams. 2005.
Book on Amazon
It starts with Servlets, Web Containers, WebSockets then we go into Spring and replace our Servlets with Controllers and etc. I think that could give good understanding about what's happening behind the scenes in Spring and helpts to understand what Spring really does for you. It also covers RESTful, SOAP WebServices. Has a larger chapter on messaging compared to other books. Also covers JDBC, Hibernate, Security, OAuth and more.
From looking at this book I think maybe that's what I'm looking for but one downside that is released in 2005. But maybe it is very good for understanding fundamentals of Spring. And question is, do I really benefit from this book, maybe one of the following books is enough?
And after this I think to move to maybe one of these:
Spring 5 Recipes: A Problem-Solution Approach 4th ed. Edition. r), Daniel Rubio (Author), Josh Long (Author). 2017.
Book on Amazon After quick view at this book I kinda liked it. Just chapter on WebFlux is very small, I think authors assume that you already now that.
Learning Spring Boot 2.0 - Greg L. Turnquist. 2017.
Book on Amazon Liked this one too. Seems to have a lot of explanations, not just giving you code and saying where to put it.
I've no idea about this book "Professional Java for Web Applications", but you should be aware that Spring has had some fundamental changes since 2005. Most notably the original versions used XML to configure bean factories. The latest versions prefer that Java configuration and/or component scanning is used.
I agree with Peter, make use of the documentation as it is comprehensive and more frequently updated.
posted 1 month ago
Thank You for your answers.
Yes I am aware that a lot of things changed since 2005. But I thought that this book could give good spring behind the scenes understanding. Like Head First Java is really outdated too, but it gave me such a good understanding of OOP principles, and understanding threads, not just with code examples, but with pictures and diagrams of what's really happening. But now I think, that maybe it isn't good option to invest my time into this book, and start learning principles from more up to date sources.
Yes I'm aware of spring documentation, it's really great. Also I like javabrains youtube channel. He is really good at explaining principles how everything is working, not just commenting on he's code.
In addition to that I want to read a book too. To see everything blend in a real life application. For example jms/rabbit messaging. Udemy/youtube tutorials just gives you how to implement classes for messaging and
develops a Hello World application with it. I now how to implement messaging services, I can write listeners, senders and etc. myself, but I need to understand what's the use of it in real world application, what we are sending, why we are sending, what we can do next when we receive it, and how ti affects application, that's where I lack knowledge.
And one more thing I really want to understand what is synchronous and asynchronous, blocking and non-blocking. Most of books I looked at, just says that blocking blocks, and non-blocking doesn't, but that is in their definition, it doesn't really say how non blocking is working compared to blocking and begins to implement methods with <Mono> or <Flux>. I didn't find good source to learn that, it would be great to find diagrams or something to show how it really works, not just theoretical approach.
Learning Spring Boot 2.0 book has a much content about messaging and blocking/non blocking. Don't now if it's good at explaining things, but maybe I should give it a try?
Second book is . Getting started with Spring Framework I like it's aproach. It's starts chapters with application’s requirements, what our application will do, what we need to do to implement this. Also has many diagrams, that I find useful.
The only cure for that is hours of television radiation. And this tiny ad: