有沒有一種方法可以在運行時決定從哪個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(可能是外部庫),它們在同一個包中定義了同一個類的兩個不同版本,並且需要根據不同的情況調用一個或另一個類? –