文章更新时间:2023-09-20 15:45
组件简介
维护者 | cglib 组织 | 许可证类型 | MulanPSL-2.0 |
首次发布 | 2005 年 11 月 8 日 | 最新发布时间 | 2019 年 8 月 12 日 |
GitHub Star | 4664 | GitHub Fork | 886 |
依赖包 | 1,972 | 依赖存储库 | 40,788 |
cglib是一个用于生成和转换Java字节码的高级API,它被AOP,测试,数据访问框架等用于生成动态代理对象和拦截字段访问
官方仓库:https://github.com/cglib/cglib
参考链接:
https://mvnrepository.com/artifact/cglib/cglib
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/cglib:cglib
组件健康度
技术健康度 | cglib使用ASM(一个轻量级的字节码操作框架)来操作字节码生成新的类。ASM使用类似SAX的解析器来实现高性能。cglib提供了多种回调接口,如FixedValue,MethodInterceptor,LazyLoader等,来实现不同的代理逻辑。cglib还提供了一些工具类,如BeanCopier,BeanMap,BulkBean等,来实现JavaBean相关的操作。cglib的技术健康度较高,它使用了成熟和高效的技术来实现字节码生成和转换,提供了丰富和灵活的功能。 |
社区健康度 | cglib是一个开源项目,其代码托管在GitHub上。截至2023年9月20日,cglib有2.6k个星标,1.1k个forks,17个贡献者,4个分支,15个发布版本。cglib的最新版本是3.3.0,发布于2019年5月31日。cglib的社区健康度一般,它有一定的关注度和贡献度,但更新和维护频率较低。 |
更新和维护频率 | cglib的最新版本是3.3.0,发布于2019年5月31日。从GitHub上的提交历史可以看出,cglib在2019年后就没有再更新过。cglib的更新和维护频率较低,可能是因为它已经比较稳定和成熟,或者是因为缺乏维护者和活跃用户。 |
兼容性 | cglib要求Java版本至少为1.8。cglib可以与多种Java框架配合使用,如Spring AOP,Hibernate,Mockito等。cglib的兼容性较好,它可以支持较新的Java版本和多种流行的Java框架。 |
文档和支持 | cglib在GitHub上提供了一些简单的示例代码和文档。但是,cglib的文档不够完善和详细,缺少一些高级功能和用法的说明。cglib在Stack Overflow上有2.4k个相关问题,但并不是所有问题都有得到解答或满意的答案。cglib的文档和支持较差,它需要更多的文档和示例来帮助用户理解和使用。 |
cglib是一个功能强大,性能高效的字节码生成库,它可以为没有实现接口的类提供代理,并提供了一些JavaBean相关的工具类。但是,cglib也有一些不足之处,如更新和维护频率低,文档和支持不足等。因此,cglib的健康度可以说是中等偏上,它仍然是一个值得使用和学习的库。
参考链接:
https://github.com/cglib/cglib
https://www.runoob.com/w3cnote/cglibcode-generation-library-intro.html
https://www.baeldung.com/cglib
组件许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:https://github.com/cglib/cglib/blob/master/LICENSE
组件漏洞版本及修复方案
暂无
同类型可替代组件
- ASM:ASM是一个轻量级的字节码操作框架,它可以直接操作字节码生成新的类。ASM使用类似SAX的解析器来实现高性能。ASM是cglib的底层技术,它提供了更低层次和更全面的控制,但也需要更深入的字节码和JVM知识。
- Byte Buddy:Byte Buddy是一个相对较新的字节码生成库,它提供了任何cglib或Javassist提供的功能和更多。Byte Buddy可以完全定制到字节码级别,并且提供了一个富有表现力的领域特定语言,使得代码非常易读。Byte Buddy支持所有JVM字节码版本,包括Java 8关于默认方法的语义变化。
- Javassist:Javassist是一个用于操作字节码的库,它可以在运行时修改类或者动态生成类。Javassist使用源代码级别的API来操作字节码,这使得它比ASM或cglib更容易使用,但也牺牲了一些性能和灵活性。
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
org.apache.ant:ant | 1.10.3 | 是 | maven |
org.openjdk.jmh:jmh-core | 1.21 | 是 | maven |
cglib:cglib | 3.3.1-SNAPSHOT | 是 | maven |
org.ow2.asm:asm | 7.1 | 是 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1704382028576505856/1704382028748472320?allow=1