【发布时间】:2013-10-29 15:06:49
【问题描述】:
Jboss 7
说明
为了获得对某些组件(本例中为会话 bean)的引用,我们可以使用 lookup 函数。如果组件不在同一个模块中,我们必须指定模块名称。
例子:
String moduleName = "exampleModuleName";
InitialContext context = new InitialContext();
IHelloLocal helloBean = (IHelloLocal) context.lookup("java:app/" + moduleName + "/" + HelloBean.class.getSimpleName() + "!" + IHelloLocal.class.getName());
这里的问题是硬编码的模块名称。
模块名称始终相同是可以接受的。但它可以随时间改变。例如,当使用 maven 构建模块时,默认 jar 名称包含版本。可以在 jar 文件的名称中使用版本,但这会迫使我们在代码中找到模块名称被硬编码的每个地方。这是一件可怕的事情。
问题
如何处理这种情况?
【问题讨论】: