Jam*_* P. 5 java frameworks jar
您如何确定框架的此类功能需要哪些罐子?例如,为了仅支持依赖注入,需要在Spring的所有可用jar中使用哪些jar?
有些工具可以通过静态分析代码来找出应用程序中实际使用的类,然后创建仅包含这些类的新 JAR,从而创建最小的 JAR。(我记得使用 Zelix Classmaster 来做到这一点,但还有很多替代方案。)
将这些工具用于 Spring 等 DI 框架的问题包括:
现有的仅跟踪静态依赖关系。如果动态加载类,则必须专门告诉分析器每个类。一般而言,DI 框架(尤其是 Spring)充满了动态加载,包括对应用程序代码不透明的动态加载。
现有工具通过创建新的输出 JAR 来工作,而不是告诉您哪些输入 JAR 未使用。虽然如果您要从闭源代码库创建收缩包装的应用程序,则重新打包 JAR 是可以的,但一般而言这是不可取的,并且对于某些开源许可证可能会出现问题。当然你不想在 Spring 中这样做。
理论上,有人可以编写一个工具来提供帮助。在实践中,该工具需要(例如)知道如何从以注释、XML 表示的 Spring 配置中以及从运行时从高阶配置创建的 bean 描述符中提取动态类依赖关系(例如 SpringSecurity 就是这样做的)。这是一个很大的问题。即使如此,您也会遇到这样的问题:由于 JAR 修剪过程遗漏了所需的 JAR,因此对安装平台上的接线进行的“小”更改可能会失败。
在我看来,更实用的替代方案是:
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |