If you want to add or improve your logging or caching layers, you definitely want to consider doing them using Aspect Programming. Those are some common examples but there are numerous scenarios where touching your "core" coding layers (or, tiers or services) is not a good idea. Aspects come in quite handy on those occasions.