Having read the comments about adding Aspect behaviors to Java and JBoss specifically I thought I'd add a few cents worth of data and opinions.
1) Aspects allow you to take needs orthagonal to your problem domain and put them in a different layer if you will. Examples: Logging, Database mapping, business rules....
2) Familiarize yourself with the work on Generic functions and CLOS (specifically before, after and around methods). They allow for mixing in behavior onto classes for which you don't have the source and/or don't care about how they do something, you just want to get something else done as well without messing up thier logic and flow
3) Try to think of your solution without typing. Embrace the idea that a object has a type (its' class), but that the type defined for a variable is just a signal to the compilier to be able to optimize things.
4) You can think of Aspects as wrappers around your class to provide mixed in behavior (instance specific even) that is type safe and only has a single maintance point (the Aspects implementation). Think of mixing in a aspect for Observers.