罐子LIB的,我有幾個將由我的web應用中使用第三方JAR文件。這些JAR文件實際上有不同的版本。加載不同的版本,從servlet的
E.g.
版本1.0的JAR
/opt/lib/third-party-jars/1.0/3rdparty1.jar
/opt/lib/third-party-jars/1.0/3rdparty2.jar
2.0版的JAR
/opt/lib/third-party-jars/2.0/3rdparty1.jar
/opt/lib/third-party-jars/2.0/3rdparty2.jar
是否有可能加載不同的版本庫的servlet得到動態加載之前?任何框架都可以在不更改現有代碼的情況下做到這一點?
public class Servlet1 extends HttpServlet {
protected void doPost(....) {
MyBusinessLogic businessLogic = new MyBusinessLogic();
businessLogic.run() // My business logic spawns here which will start involving third-party classes
}
}
或者是有可能在我的業務邏輯代碼之前動態加載版本1.0或2.0庫被調用?我可以使用的一種方法是使用自定義類加載器和"setContextClassLoader"
,但這需要使用反射來重構我所有的業務邏輯。這將是一個巨大的努力。我試圖不改變我現有的業務邏輯代碼。