`
wls981
  • 浏览: 137549 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

Cannot subclass final class class $Proxy145

 
阅读更多

类似以下的spring错误信息:

org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class $Proxy145]: 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 $Proxy145

 

解决问题的检查点:

1、需要AOP拦截的类是否是final的,final类不可使用CGLIB来代理。

2、是否在给BEAN配AOP的时候强制使用CGLIB,如果是则可指定proxyTargetClass属性以让spring强制代理目标类。

3、类是否被多次代理了,如果类被多次代理过,则第二次进行代理的时候拿到的是第一次代理后的对象,这个对象是个final形式的,所以会出现这个错误。

 

基于第三点要注意,类是否被多次代码不紧紧取决于类是否被配置了多次AOP,如果类实现了某个接口,则还要看类实现的接口是否被aop拦截过。如果类实现了接口且接口也被AOP拦截了,则很可能出现上面的错误(是否出错取决于AOP代理执行的顺序)。

分享到:
评论

相关推荐

    JMOCK final class mock

    JMOCK final class mockJMOCK final class mockJMOCK final class mockJMOCK final class mockJMOCK final class mock

    Allegro-Class(类)SubClass(子类)层功能介绍 .docx

    Allegro-Class(类)SubClass(子类)层功能介绍 Allegro-Class(类)SubClass(子类)层功能是 Allegro 工具中的一个重要概念,在 PCB 设计中扮演着关键角色。Class(类)代表设计中所有可见项目的类型,每个类中...

    USB 设备类型 device class 代码完整版

    该信息被包含在三个字节中,分别是 Base Class、SubClass 和 Protocol。这些信息可以被存储在设备描述符(Device Descriptor)和接口描述符(Interface Descriptors)中。 Base Class 是设备类型的基本分类,每个 ...

    Java final关键字

    public class SubClass extends BaseClass { // 编译错误:不能重写final方法 // @Override // public void finalizeMethod() { // System.out.println("Trying to override"); // } } ``` 再次,`final`可以...

    ShardingSphereJDBC:ShardingSphereJDBC的简单使用和坑的

    ShardingSphere于2020年4月16日成为Apache顶级基金项目,现有三部分,ShardingSphere-JDBC、ShardingSphere-Proxy、ShardingSphere-Sidecar。 引包 <groupId>org.apache.shardingsphere <artifactId>...

    java面向对象之final修饰符.docx

    public class SubClass extends BaseClass { // 不能重写cannotOverride方法 // @Override // public void cannotOverride() { // // 方法实现 // } } ``` 三、final修饰类 当类被final修饰时,意味着这个类...

    class-of-builtins.rar_class

    class SubClass extends SuperClass { constructor(param) { super(param); // 子类的其他初始化操作 } } ``` 4. **静态方法(Static Methods)** 使用`static`关键字可以定义类的静态方法,它们不绑定到类...

    Instance of Subclass, Subclass, Instance of Superclass, Superclass,

    class Subclass(Superclass): def __init__(self): super().__init__() ``` 在这个例子中,`Subclass` 是 `Superclass` 的子类,它继承了 `Superclass` 的所有公共属性和方法。 接下来,"Instance of Subclass" ...

    java实验7.2(Auto.java Ford.java)

    Create two suclasses for individual automobile makers (for example, Ford and Chevy) and include appropriate setPrice() methods in each subclass. Finally, write a program that uses the Auto class and ...

    子类 SubClass,SubClassEx 处理的示例

    在编程领域,子类(SubClass)和子类扩展(SubClassEx)是面向对象编程中的关键概念。这些术语通常与继承相关,继承是面向对象编程的三大特性之一(另外两个是封装和多态)。在这个示例中,我们看到的是如何创建和...

    HibernateDemo003_TABLE_PER_CLASS.rar_class

    Hibernate提供了多种策略来处理这种情况,如单表策略(Single Table),联合实体策略( Joined Subclass)以及我们这里关注的表-per-class策略。每种策略都有其优点和适用场景。 1. **表-per-class策略**:在这种...

    subclass.exe

    subclass.exe 子类

    Lua面向对象封装好的基类Class

    function Class:extend(subclass) subclass.__index = subclass subclass.__super = self return subclass end return Class ``` 在这个例子中,`Class:new`是构造函数,用来创建新的实例。`setmetatable`用于...

    Hibernate ORM - 继承关联关系之union-subclass

    本文将深入探讨Hibernate ORM中的一个特定概念——继承关联关系的“union-subclass”策略。这个策略涉及到如何在面向对象的设计中处理类的继承关系,并将其映射到数据库中。 首先,我们来理解继承关联关系。在面向...

    subclass.h

    C++ x86 x64 类内类外子类化 C++ x86 x64 类内类外子类化 C++ x86 x64 类内类外子类化 C++ x86 x64 类内类外子类化

    类继承构造方法super()调用可以吃吗

    class SubClass extends SuperClass { int x; SubClass() { super(); // 调用父类的构造方法 x = 5; // super()必须是子类构造器的第一条语句 System.out.println("in SubClass :x=" + x); } void ...

    Visual Basic Subclass Control

    This code demonstrates how to write a subclassing control in Visual Basic(version 5 or later). The code takes advantage of the new AddressOfkeyword, which can only be used from a BAS module....

    php5面向对象

    class SubClass extends FinalClass {} // 会抛出错误 class ParentClass { final public function finalMethod() {} } class ChildClass extends ParentClass { public function finalMethod() {} // 会抛出...

    Java Methods-Class Hierarchies and Interfaces.ppt

    public class Subclass extends Superclass { // ... } ``` 类层次结构是通过继承构建的一系列类的关系树。这有助于减少代码冗余,将共同的代码抽取到父类中。例如,我们可以有一个`Balloon`类作为基础,然后创建`...

Global site tag (gtag.js) - Google Analytics