相关文章推荐
不敢表白的牛肉面  ·  使用 Microsoft Entra ...·  1 年前    · 
一直单身的台灯  ·  机器学习加速氧化还原电位和酸度常数计算·  2 年前    · 
眼睛小的鞭炮  ·  vs2017调用目标发生了异常 - ...·  2 年前    · 
善良的白开水  ·  提高文件和数据访问的安全性 - ...·  2 年前    · 
胆小的豆浆  ·  django项目中如何使用ajax完成短信验 ...·  2 年前    · 
Code  ›  【Bug】CGLIB与JDK17不兼容,依赖失效,模块化报错问题及解决方式ClassFormatError: accessible: module java.base does not ‘opens-
https://cloud.tencent.com/developer/article/2486371
独立的黑框眼镜
2 月前
三三是该溜子

【Bug】CGLIB与JDK17不兼容,依赖失效,模块化报错问题及解决方式ClassFormatError: accessible: module java.base does not ‘opens

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
发布
三三是该溜子
社区首页 > 专栏 > 【Bug】CGLIB与JDK17不兼容,依赖失效,模块化报错问题及解决方式ClassFormatError: accessible: module java.base does not ‘opens

【Bug】CGLIB与JDK17不兼容,依赖失效,模块化报错问题及解决方式ClassFormatError: accessible: module java.base does not ‘opens

作者头像
三三是该溜子
发布 于 2025-01-13 08:16:53
发布 于 2025-01-13 08:16:53
2.2K 1
举报
文章被收录于专栏: 该溜子的专栏 该溜子的专栏

引入:本文面向人群CGLIB代理与JDK9+版本不兼容导致的报错

一:报错信息和相关代码展示

代码语言: javascript
复制
public class DynamicMain {
    public static void main(String[] args) {
        //subject可以翻译为对象,代理对象
        HouseSubject target= new RealHouseSubject();
        //创建一个代理对象
        HouseSubject proxy = (HouseSubject)
                Enhancer.create(target.getClass(), new CGLIBInterceptor(target));
        proxy.rentHouse();
}
代码语言: javascript
复制
package com.example.springaop.brokerdemo2;
import lombok.val;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
import java.sql.SQLOutput;
 * Created with IntelliJ IDEA.
 * Description:
 * User: Hua YY
 * Date: 2024-12-30
 * Time: 11:25
public class CGLIBInterceptor implements MethodInterceptor {
    //目标对象,被代理的对象
    private Object target;
    public CGLIBInterceptor(Object target){
        this.target = target;
    @Override
    public Object intercept(Object o, Method method
            , Object[] objects, MethodProxy methodProxy) throws Throwable {
        //代理增强内容
        System.out.println("我是中介,开始代理");
        //调用方法(反射机制)
        Object retVal = method.invoke(target, objects);
        //代理增强内容
        System.out.println("我是中介,代理结束");
 
推荐文章
不敢表白的牛肉面  ·  使用 Microsoft Entra 識別碼保護 Java Spring Boot 應用程式 - Azure | Microsoft Learn
1 年前
一直单身的台灯  ·  机器学习加速氧化还原电位和酸度常数计算
2 年前
眼睛小的鞭炮  ·  vs2017调用目标发生了异常 - 一杯明月 - 博客园
2 年前
善良的白开水  ·  提高文件和数据访问的安全性 - Windows Forms .NET Framework | Microsoft Learn
2 年前
胆小的豆浆  ·  django项目中如何使用ajax完成短信验证码的发送_django ajax 短信验证-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号