i've been running some experiments of my own with Spring Roo and it seems to be pretty cool, but i noticed that this tool makes heavy use of AOP on the model layer.
I'm thinking about creating a real project using Roo and what i would like to know is:
I'm quite new to aspect-oriented programming and some guidance would be greatly appreciated.
The Spring Framework has extensive AOP capabilities, and it makes sense to use these in Roo-based applications. AOP allows you to make a nice and clean separation between business logic and system logic. When done properly, you get a more maintainable and understandable codebase.
The disadvantage is a small performance hit, but not enough of one to make me worry about it.
To learn more about Spring and AOP, have a look at the docs. Spring uses AOP for things like transaction management and asynchronous operations.
edit: As @chedine rightly pointed out, the AOP is compile-time weaved, so the usual AOP performance hit does not apply.