I picked up this old edition second hand, on purpose, because I didn't want to know specifically about AspectJ, but rather because I wanted to get information about the concepts in aspect-oriented programming to apply in a slightly different context at work. It came quite high up the search results and all the examples would be in Java, which would be a help for me.
In fact it has been a very good read and I'm slightly disappointed not to have bothered with the more current edition, as the syntax in this edition predates Java 5 annotations, which provide a more transparent programming style, and load-time weaving is only mentioned as a future possibility. This is the downside to AspectJ in the version at the time of this edition - it is effectively a static language extension to Java, so you require a different compiler and an IDE that will understand it. Some of the features seem a little dissociated from each other - on the face of it, method interception doesn't tie in with member introduction or exception softening. The examples are well presented; I understood those on security and transactions better than those on object pooling and "business rules". The chapter on design patterns and idioms is very useful, although there are quirks in the "participant" pattern that could be overcome using reflection.