JBoss Modules – Module name

模块名和版本槽是模块加载器中唯一标识模块的关键。模块名由'.'分割,通常与包名相似但无直接关联。版本槽用于区分同一模块的不同实例,尤其在部署新版本且不兼容旧版时。系统模块'system'引用类加载器,应通过import/exportfilter限制使用。模块Id由ModuleIdentifier解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块名是由”.”号分割的字符串,它和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。

from: https://www.hollischuang.com/archives/870

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值