有没有一种方法可以在运行时决定从哪个jar(部署在jboss上)中使用哪个类?决定运行时哪个库需要在JBoss上使用
下面是一个例子:
VERSION1.JAR
package com.something;
public class MyObject {
public void saySomething() {
System.out.println("Output from version 1");
}
}
VERSION2.JAR
package com.something;
public class MyObject {
public void saySomething() {
System.out.println("Output from version 2");
}
}
所以在这两个罐子都是同一个包内的同一类,但他们做不同的事情。现在我想加载MyObject,但告诉他我想用哪个jar:
package com.main
public class Main{
public static void main(String[] args) {
MyObject v1 = new MyObject();
v1.saySomething();
MyObject v2 = new MyObject();
v2.saySomething();
}
}
这可能吗?我正在使用Jboss作为应用程序服务器,并且正在做一个ejb项目。所以这个例子只是为了解释我的意思。我想也许在上下文的帮助下?
您是否需要区分共享公共契约(接口)的两个不同实现(类)?或者,您是否确实有两个不同的JAR(可能是外部库),它们在同一个包中定义了同一个类的两个不同版本,并且需要根据不同的情况调用一个或另一个类? –