If the class that is being advised implements an interface, then
java dynamic proxies are employed.
else the target class is subclassed (base class method is overriden) using cglib (another open source library) and the advise is applied and then the base class's method is called(basically call to super).
So the target class's methods cannot be final in this case.