复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

其它

【原创】kotlin使用Spring框架,@Component内部分方法不生效

作者: whooyun发表于: 2025-01-09 18:56

Spring 默认使用的 JDK 动态代理只能代理接口,而不能直接代理没有实现接口的类中的非公开放方法,那么 Spring 将无法正确地为这个方法创建代理,导致该方法调用时不经过 AOP 增强逻辑,如未注入的依赖检查等。但是,如果你将方法声明为 open,那么 Spring 可以选择使用 CGLIB 来创建代理,CGLIB 是一种可以在运行时动态生成子类的库,它能够代理非 final 的方法。因此,一旦你把方法改为 open,Spring 就可以使用 CGLIB 创建一个子类去进行代理