JAVA WEB 项目上传的jar包如何使用?
作用:即插即用,不需要修改工程。
关键词: 反射 和 类加载机制。
思路:写一个接口,其他的接口实现打成jar,动态使用。
文件的上传我就不多说了,直接核心代码。
*0.ClassLoader loaderp = Thread.currentThread().getContextClassLoader();//父类 类加载器
1.File file = new File(jar包的路径);//
2.URL url=file.toURI().toURL();//jar包的路径
3. ClassLoader loader=new URLClassLoader(new URL[]{url},loaderp);
*4. Class<?> cls = loader.loadClass(className);
*5.Object o = cls.newInstance();
注意事项
1.父类类加载器的作用是:和当前线程所运行的类加载器一致。
2.className 类似 为 com.it.service.impl.TestServiceImpl。记得写全。不然会找不到这个类。
3.比如 TestServiceImpl 实现了 TestService接口。 则可以写成 TestService service = cls.newInstance();剩下就是调用接口的方法了。