Spring AOP: excluir evitar clases finales y enumeraciones de pointcut

Estoy tratando de implementar Logging usando Spring AOP. He definido el

@Pointcut("execution(* com.mycom..*(..))")
private void framework() {}

@Around("framework()")
public Object aroundAdviceFramework(ProceedingJoinPoint jp) throws Throwable {
    if (logger.isDebugEnabled())
        logger.debug("DEBUG:: {}  {}  Enter", jp.getTarget().getClass().getName(), jp.getSignature().getName());
    Object returnVal = jp.proceed(jp.getArgs());
    if (logger.isDebugEnabled())
        logger.debug("DEBUG:: {}  {}  Out", jp.getTarget().getClass().getName(), jp.getSignature().getName());
    logger.info("INFO:: " + jp.getTarget().getClass().getName() + " " + jp.getSignature().getName() + " Finished:");
    return returnVal;
}

Hay muchas clases bajo el paquete mycom y sus subpaquetes. Algunas de las clases son enum y clase final. Debido a esto estoy obteniendo

nested exception is org.springframework.aop.framework.AopConfigException: 
Could not generate CGLIB subclass of class [class com.mycom.util.BancsServiceProvider]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.mycom.util.BancsServiceProvider
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)

¿Hay alguna manera de excluir todas las clases finales y las clases de enumeración del registro utilizando algún tipo de expresión regular? Nota: Tengo clases de enumeración por todas partes en diferentes paquetes. Sería difícil excluirlos usando nombres de clase completos.

Actualización 2014-11-17 (probando la solución de kriegaex):

Traté de usar

@Pointcut("!within(is(FinalType))")

pero recibo el siguiente error

Pointcut is not well-formed: expecting ')' at character position 10

! dentro (es (FinalType))

He agregado esta dependencia de Maven en el archivo pom

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.8.4</version>
    </dependency>

También he agregado esta dependencia de Maven

   <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.4</version>
    </dependency>

Ahora, todo funciona a las mil maravillas. Alguna idea, ¿qué está pasando aquí?

Respuestas a la pregunta(1)

Su respuesta a la pregunta