In spring aop it is
run time weaving for the beans as you are using dynamic proxies that are returned by the container.
There are two major limitations of spring aop; it only applies to public methods and only on spring beans (actually its the bean proxies that you use to access the spring beans).
I've not used AspectJ much, but have read that it's a more complete solution offering more features and compile time / class load time weaving.
Hopefully you will not be surprised to hear that spring offers aspectj integration.
Here's a decent article comparing the two;
Spring aop vs Aspectj