Wildfly类加载:从模块还是依赖耳朵更好?

时间:2017-03-14 14:10:03

标签: java wildfly

我有一个包含很多依赖项的EAR项目。 一些依赖项是大jar(超过4 mb),所以我更喜欢将它们作为模块安装在wildfly上,并在jboss-deployment.xml中添加模块依赖项。

对于istance我们有org.mypackage.MyClass,最好从ear / lib目录或JBOSS_HOME / module中的常规依赖项加载该类?是否存在效率损失?

1 个答案:

答案 0 :(得分:3)

根据Wilfly Doc的说法:

类加载优先级

Java应用程序中常见的错误来源包括部署中也由容器提供的API类。这可能导致创建类的多个版本,并且部署无法正确部署。为了防止在WildFly中出现这种情况,模块依赖项将按特定顺序添加,以防止出现这种情况。

按优先级最高的顺序排列

  • 系统依赖项 - 这些是添加到的依赖项 容器自动模块化,包括Java EE api。

  • 用户依赖关系 - 这些是通过
    添加的依赖关系 jboss-deployment-structure.xml或通过Dependencies:manifest 条目。

  • 本地资源 - 在部署中打包的类文件 本身,例如来自WEB-INF / classes或WEB-INF / lib的类文件 战。
  • 部署间依赖关系 - 这些依赖于其他依赖关系 耳部署中的部署。这可以包括一个类 ear的lib目录,或其他ejb jar中定义的类。

更多信息:Class Loading in Wildfly