Written for enterprise Java developers who have become disillusioned with the complexity and bulk involved with EJB development, this programming tool demonstrates how the Spring framework can make coupled code easy to manage, understand, reuse, and unit-test. Spring's employment of inversion control and aspect-oriented programming techniques to encourage loosely coupled code is explained, providing programmers with the ability to use JavaBeans with the power and enterprise services only previously available in the heavier Enterprise JavaBeans.
Contains many errors and mistakes.. I've got half way through, but I'm already really tired with fixing errors, clarifying explanations or amending content just by myself, understanding what the author might have meant by introducing unexplained things or just guessing points around, etc.. many things are poorly explained and just introduced in a bunch.. especially Spring Data/JPA/Security or other Spring's web-related things.
Book should be more clearly and properly structured, in an incremental and consecutive approach. Book shouldn't contain a material which puts the reader under the confusion, or which is not explained well.
Spring in Action (5e) has been a somewhat frustrating experience because I actually think that overall, the content is quite good for the topic. I feel like it does do a pretty good job of going over how a project could apply some of the different features of Spring while doing a decent job of also explaining said features.
The problems mostly lie in the typos and errors, both in the text itself and the sample code repository. If you're trying to follow along, there are parts that are straight up just not covered in the book but exist in the sample code. This means that the errata isn't being incorporated into the latest versions, including ebooks, which is disappointing. The other main issue I have with SiA5 is that it kind of meanders in areas where the author could have just focused on going more in-depth on one particular way of doing something.
I really would like to see the next version focus more on less because I actually like the idea of working on a project throughout the book, it's just too frustrating to do in its current form. Based on some other reviews of this edition, it's possible that the previous edition had better editing; I may take a look in the future and update this review if that's the case.
Having worked with Spring for several years, I started reading the 6th edition of "Spring in Action" with the hope of gaining a deeper understanding of how Spring works under the hood. Unfortunately, I found that the sections on Spring IOC and bean management were quite short and not as in-depth as I had hoped. Instead, the book focused more on less useful topics like Spring integration and Spring actuators. I'm considering going back to the 4th or 5th edition, hoping they cover the topics I'm more interested in.
Despite the popularity of the series, the latest edition i.e. the 5 edition, disappointed me. Many of the code snippets in the book are incomplete and have not been redacted. For me, a beginner to Spring, this book is very difficult to read.
Didn't like the author's style, he's trying too hard to sound friendly. The author discusses obvious things for too long and omits explanations of non-obvious things altogether.
The book simply has no warnings, best practices, rules of thumb, and tradeoffs. I think it's a bad sign when you're too confident in the piece of technology. In sum, the book is too upbeat and confident about Spring to be useful.
A good, big, information-rich introduction to the Spring Framework.
It starts with the fundamentals of Spring -- the Spring container, dependency injection, and aspect-oriented programming. It proceeds to discuss how to build applications, starting at the front end (HTML, with some JavaScript in places) and going all the way to the back-end (server-side and persistence-related code).
The book discusses Spring MVC, several view rendering options (JSP, Velocity, Thymeleaf), and several database-related technologies (Spring JDBC, JPA/Hibernate, Spring Data JDBC, Neo4j, and Redis). It goes into how to use Spring to send messages over JMS, AMQP, WebSocket (with STOMP), and email. It addresses concerns such as caching, security, and how to manage an application with JMX. Lastly, it includes a chapter on Spring Boot, which was a very new technology when this edition was published but which has increased greatly in prominence since then.
The book discusses a number of projects and has code which can be downloaded, read, and adapted as needed. As you'd expect, programming along to the code in the book will help you get more out of it.
So, a wide-ranging book, absolutely packed with information. The first part of this book is required reading for all programmers, in my opinion, as it deals with concepts (IoC, AOP) which transcend any one language or implementation. The latter parts will be useful to all Enterprise Java developers.
Certainly, a new reader should probably look at one of the newer editions of this book -- the 6th Edition is the most current as of this writing -- but the core of the framework has not changed in the meantime. This edition is therefore still useful, and worth reading.
I re-read it after 9 years, ofc the latest edition. I'm not even half as satisfied as I was originally when I read the previous edition. Why so?
- Spring is extremely bloated, so it's not possible to tackle everything - however, the absolutely key topics (like models or Spring Data) have been covered super-lightly, and there are more "magical" (implicit) Spring conventions than ever - that's what people new to Spring (or super-rusty ones, like myself) struggle with the most - the chapters that simply HAD to be there (e.g., Spring Security) are very "mechanical" - they don't explain concepts but "one working example" - there's very little or actual, real everyday challenges with Spring applications - this is a "hello world" kind of a ride - (on a plus side) I liked the part on the WebFlux - as this part was totally new to me (but I was familiar with Rx - for .NET & JS - before)
Sadly, it's not a good Spring intro anymore. Too bloated, too boring, too "mechanical".
*ORIGINAL REVIEW*
Honest 5 stars as this book has clearly played is role. And it wasn't easy, keeping in mind how vast & spacious is the topic. It's easy to follow, reasonably structure & it's very sensible with clear indicating of "child sub-topics" (to be investigated separately, out of the book scope) without unnecessary exploring them. Regardless of breadth of material, it didn't really feel overwhelming.
Chapters I liked most? Web Flow & AOP - as I these topics (in context of Spring) were pretty much new for me.
Any complaints? IMHO a chapter about SpEL was interesting, but better introduction into the context would be neat. Also I believe that persistence-related part didn't bring up much good - it wasn't that Spring-specific.
One more point - I've skipped the chapter about Boot (as I've read a dedicated book about that recently), so I can't tell anything about it.
If you want a good starter for Spring, this book sounds like a good idea.
The Fifth Edition jumps to spring-boot. It's good from a high-level perspective with some caveats. There are plenty of errors that didn't make it to the official errata page. Chief among these is a lack of versioning of the sample code. We see annotations from Chapter 3 on JPA pop up in the chapter 2 code to do with MVC. Some errors make it hard for people to follow along as they're coding to the book. Also the coverage is somewhat high level. For example with MVC, although there are explanations, you still need to dig on your own to grasp the mechanics of @ModelAttribute. So what I'm saying is it's not an all-in-one reference -- in fairness it doesn't claim to be. Given the breadth of Spring as a topic, it serves as a good introduction. With plenty of exploration required -- it would have been good if the author could have included hand-off exercises that served as a launchpad for these investigations. Overall a good book.
This book provides great introduction to Spring 4 framework,It is also good for whom has started learning about the framework, It starts with explaining spring core concepts then it details all spring modules in a progressive way Overall, I give 5 stars to this book because it explains all important concepts so every reader can understand.
This edition is not quite as good as the previous one, for reasons that are partly its fault and partly not. But it's still a good book for the developer working in the Enterprise Java space.
This edition was published in 2019, and the previous one in 2015. In these four years, the landscape of programming with Spring changed considerably. Spring Boot went from "promising new thing" to "the de facto standard for modern Spring apps" -- with good reason -- and the number of Spring sub-projects increased to the point where even providing an introduction to the most important ones is a challenge. This edition's contents are shaped by these facts.
The 5th edition drops the detailed introduction into "core Spring" the that the previous one had. Much abbreviated is the discussion of the fundamentals of bean wiring, the IoC container, and the role of AOP in the Spring framework. New readers will not come away edified as to the underlying "magic" that makes the framework go.
Instead, this edition goes through a large number of facets of developing a modern app: the web layer, the data access layer, security, configuration, integration, new programming frameworks (reactive Spring), managing an application once developed, and deploying it to a cloud. It is good that such a large area is covered, but none of this topics is explored very deeply.
That said, a diligent reader -- especially one who works along with the book and uses its accompanying code -- will get a good amount of value out of it. I can't at this point say how this edition compares to the 6th (the most recent one at time of writing), but that's a relevant question.
4 stars. (ŷ to give star ratings to multiple editions of a book.)
The author insists that the best way to learn Spring is to start by making a basic MVC application - the problem is that since the start of the first chapter the reader needs to follow the author's steps trustingly since he gets an over-simplified explanation of what is happening.
There is no detailed explanation on how a Model works, again, the reader needs to assume that magic is happening in how the attributes are added in a Model.
The author also insists the use of Lombok to get rid of the boilerplate code that is needed, which in the beginning of the learning process it is important for the reader to know what is under the hood of the classes he writes - and this gets discarded with the use of Lombok.
Even if this is the Sixth Edition the author needs to revise the structure of his book, the starting project should be a basic API in which only later in the book should there be a thought of using the MVC to consume the API.
I read the first 3 chapters and a bit of the rest of this book and despite it having 6 editions (I read the 6th one), it is incredibly sloppy! Lots of mistakes and omissions, forcing you to go into the code and fix it yourself. And these errors can be pretty glaring (eg, references to objects of the wrong type, methods that don't exist). The explanations are hit or miss, as the author will sometimes introduce a new object that he will not explain. Some code is introduced, just so it can be thrown away 2 pages later such as in the persistence chapter. In the same chapter, he will introduce a 'taco dto' that can't be saved to the db because it gets lost in transit while doing work with the 'taco order'. So the order gets saved, but the dto object doesn't.
It seems the author did not bother to proofread his own work, nor did he bother to update the code which has received an update 2 years ago on Github. It isn't beginner friendly either, so if you're new to Spring or programming in general, I would suggest to avoid. Very bad for a self proclaimed 'zealous promoter of the Spring framework'!
I may open this book again if I need some specific topic from it, but otherwise I will stay away. What a shame.
A good overview of all that Spring can do and more. Got a lot out of this. The author clearly knows Spring in and out and enjoys talking about it, walking through most important aspects of the ecosystem with use cases and examples. On the flip side, the book would be better with examples that actually worked. A newcomer to spring is likely to be frustrated because many of the pieces don't actually work and the errata online didn't help much. It is challenging to maintain working code with ever-evolving libraries and frameworks (Spring 6 is already out) though, and the Spring ecosystem is so huge that I don't think a much better job could be done in a book. Maybe I should've abandoned this version and picked up the Spring 6 edition. Still good to learn the lay of the land. Spring does a lot of 'voodoo' behind the scenes in projects e.g. autoconfiguration just by adding a dependency, implementing push for message processing just by adding an annotation, etc., so it's important to have a general understanding of the technology, and the book delivers on that. At the very least, after reading this you know what you don't know and what to look up. Some sections could be written better, e.g. the Reactive Spring section felt like a lot came out of nowhere fast.
I just concluded the 5th edition by one of the famous introductory books to Spring framework. To be honest, it wasn't what I was looking for currently. This edition of the book can be read after a year or a year and a half experience working with Spring as the author took a bit more different approach in my humbe opinion with this edition(I compared the contents of the two editions). I was looking for a book that would introduce me more to the Spring framework founding principles. This time the author focused more on infrastructure and architecture related topics like High availability, fault tolerance, monitoring and other principles used within modern microservice-based web applications that developers are most likely to encounter nowadays. He focused on the way those principles could be achieved in projects under the Spring Cloud hat. There's nothing wrong with all of this, actually. I'll have a look at a few chapters from the fourth edition to fill my gaps.
As for me, it was an essential book in my professional growth. Book says about Spring basics, work with DB, Spring Integrations, Reactive Spring, and Spring Cloud tech.
But, to be honest, this book has too many errors in code snippets and the author's GitHub doesn't contain a completely correct code base. Chapter with HATEOAS was incredibly bad because class and methods names weren't correct! It's cool that I was forced to check official documentation and so on to fix A BUNCH OF BUGS (yes, I did it), but I think that book should be well updated and have no errors.
I wanted to rate 3 out of 5, but I will add 1 more because I believe that the next edition will be better and I will read it.
This is a very good reference/guide to Spring if you already have some (very) basic experience with frameworks with DI. I liked the humor that was kept up in the writing, and that all concepts had accompanying examples with very good explanations. Several chapters try to implement the new concepts they introduce into an app, but I found the execution here to be a bit less focused. If the practical implementation was a bit more focused and easier to follow, I would unequivocally rate this as 5 stars.
I know Spring. Although it didn't take me 10 seconds like Neo with Kung Fu, but I kinda feel the same confidence he had with what he just learned. Spring in Action was helpful by explaining the logic behind Spring, and teaching the how-to by example like short tutorials. For the cons of the book, I think a 600 pages book, should go further in depth of Spring engine, best practices. I also felt the Persistence part didn't bring much, so I'm going to look for some dedicated resource about that.
I couldn't find a single online tutorial that adequately explained Spring. Seriously, none. They all appear to assume that the reader already knows something about Spring. Walls doesn't make that assumption.
Walls goes into enough depth to teach the reader how to effectively apply Spring's tools, while explaining what happens under the hood.
If you want to learn how to use Spring and all that it offers, this book is a great choice.
This book contains everything you need to know to get a clear understanding of just about everything in Spring. Even today , more than 4 years after it was released I got very useful information out of it (concerning spring security this time). It is well written , not boring at all and it earns everyone of my 5 stars! I highly recommend to read it cover to cover or as reference book.
Dobre i łopatologiczne wprowadzenie do Springa, chociaż pierwsza aplikacja wg książki to droga przez mękę. Brakujący kod, trzeba skakać po książce, nic nie działa, googlujesz, sprawdzasz kod dołączony do przykładu... Eeeh, lektura dla ludzi o mocnych nerwach. Ale później już jest lekko i przyjemnie ;)
Good introduction to Spring framework. Explains basic concepts and howto they are used with lots of examples. However its very expressive and long descriptions so nice for reading but not looking up stuff or getting lot of information in short time.
Good introduction/overview of Spring framework - covers main parts.
There are some errors in the code, plus author pitch Initialzr too often - I believe that we can shred 10-15 pages of repetition of the pieces of pom.xml, etc.
The author does a great job in explaining all the core concept of the Spring Framework, even though is really hard to fit all the concepts in a single book, this book has packed most of the concepts with clear cut examples.
Excelente libro de introducción al mundo de este maravilloso framework para Java, la mejor comprensión de la filosofía de inyección de dependencias y buen nivel de detalle de las configuraciones para poder construir una aplicación empresarial de manera ordenada y limpia.