当前位置: 首页 > 工具软件 > JBoss Modules > 使用案例 >

JBoss Modules - Module name

桂和同
2023-12-01

模块名是由"."号分割的字符串,它和version slot一起用来在module loader中唯一标志一个模块。一般来说,名称的组成就像包名一样,但在模块名和模块包含的包之间并没有任何的联系。一下有一些典型的模块名:

  • org.apache.commons.logging
  • org.jboss.remoting
  • cglib
  • javax.ejb.api
  • ch.qos.cal10n

大多数的module loader支持加载一个名叫"system"的特别模块。这个模块引用了用来加载jboss-module.jar的类加载器。由于事实上这个类加载器可能包含了任何的资源,所以不要直接使用这个模块,而是应该使用 import/export filter 来提供一个这个模块的受限版本。

 

当在一个module loader中希望一个模块的多个实例的时候,就需要使用Version slot来进行标志。如果你想部署一个模块的新版本,因为有一个新的应用需要它,但是新版本不能兼容老版本,你就需要用到version slot。Version slot可以是任何的字符串;所以可以按照系统的要求进行任意的组织。如果没有指定,version slot默认为"main"。

当使用字符串来唯一标志一个模块时,version slot可以附在模块名之后,用":"分隔。比如,下面的两个模块Id字符串引用的是同一个模块:

  • org.jboss.remoting:main
  • org.jboss.remoting

下面的3个模块Id字符串标志不同的模块:

  • org.jboss.remoting:2
  • org.jboss.remoting:3
  • org.jboss.remoting

在Modules API中,模块Id由org.jboss.modules.ModuleIdentifier类来表示,它负责解析Id字符串以及组装名称或者名称加上version slot成模块的Id。

 

 类似资料:

相关阅读

相关文章

相关问答