If using @target in the pointcut expression, spring will create proxy for the classes which are in maybe case and will check the aop when user call the functions of proxy class. If there's a final class in these proxy functions and use cglib proxy . the project will start failed. So I return the target object, for these final class without cglib proxy.