Reading Spring in Action by Craig Walls made me very positively
surprised. I expected another book which is elaborating about basics
of dependency injection using long, difficult to follow code
fragments. Instead I received exactly the kind of book I needed for a
quick revision of core Spring and essentials of enterprise and
client-side Spring.
After brief overview of inversion of control and basics of bean
wiring, the book quickly digs into interesting advanced Spring
features. Reading the first part,
which is covering basics, was also very valuable. It is full of well
chosen, sometimes comic examples which help you remember core
features. Moreover, even describing basics, the author clearly points
out important facts such as differences between Singleton in Spring
and standard design patterns.
A few next chapters were even more involving. I was able to sort out and
better understand configuration tricks used by architects in my past
projects as well as learn new ones. The book is written in such a
clear and affordable style, that you can read it even after tiring day
at work. Each chapter begins with
interesting example from the real life which helps you remember what
comes next. There is also always short theoretical introduction for
advanced not Spring related concepts like transactions and AOP
terminology.
Code snippets in book are short, clear and self explaining. They are
not too much dependent on each other so you can easily jump to another
chapter. There is also plenty of useful charts and illustrations.
What I also liked about the book, is that in each chapter it
highlights very practical features which make your code more compact,
elegant and easier to maintain. It shows not only advantages of Spring
features, but also disadvantages of some of them.
What I think could make the book even better is adding a few
'round-up' questions at the end of each chapter.
The chapter about POJO-based remote services made me a bit disappointed.
It keeps repeating the same procedure for RMI-based services, Hessian, Burlap, HTTP-Invoker
instead of making some useful generalizations.
To sum up - I think that Spring in Action is a great book for people
with basics which want to put their hands on more advanced features.
After reading a chapter you remember what is most important, you know
where to search for more and you are ready to get to the code and try
how it works. The book may be a bit more elaborate at the beginning
for Spring experts, but it can always be a good 'Spring bible', useful
to check something or to make a quick revision.