以下Java代码在自主计算领域如何有用?

前端之家收集整理的这篇文章主要介绍了以下Java代码在自主计算领域如何有用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我正在学习的书中,他们展示了这个 Java代码
Class c = ClassLoader.getSystemClassLoader().loadClass(name);
Class type = this.getClass().getClassLoader().loadClass(name);
Object obj = type.newInstance();

代码用于动态加载Java类.这本书继续说:

unloading modules raises an issue. A class loader cannot unload a
class. Unloading a class requires unloading the class loader itself.
This is why programmers .. tend to define several class loaders.

使用这样的代码有什么好处?自主计算的概念通常是“自主系统管理”.这与Java程序如何受JVM控制有关?

来源:自动计算原理设计(由拉兰达)

解决方法

好处是可以在运行时决定实际加载和使用什么类.对于简单的Java程序,您有一个类的单个实现没有任何好处.

像Osgi这样的复杂环境(Eclipse的基础)为每个模块使用单独的类加载器.这样可以带来灵活性以及在运行时更换模块的可能性.

另一个“经典”用例是在运行时加载数据库驱动程序.您可能想要连接到MysqL数据库或Oracle,并且都使用JDBCDriver的不同实现.

加成:

讨论eclipse / osgi类加载概念的Alex Blewitt的一篇非常好的文章可以在here中找到.

在我自己的编码经验中,我使用eclipse插件进行企业级Web监控项目.监控基本上是关注网络上不断刮擦的资源​​.每个这样的资源由监视器插件的实现来监视.并不是所有的资源都由我们控制,所以当他们改变时,我们必须调整处理该资源的插件.当我们卸载旧的插件模块时,整个监控应用程序可以继续运行.所有在运行时,几乎没有停机时间(仅对于需要交换的模块)当然,我使用Eclipse胖客户端平台(RCP)隐藏了每个插件的类加载器.您只需要指定哪个插件依赖于哪个和实际的类加载,然后由RCP平台完成.

像Tomcat这样的Web服务器使用相同的方法,虽然我没有太多的Tomcat经验.

直接实现动态类加载系统可能是一个很好的练习,但是对于现实世界的应用程序,我将明确地研究生产级实现,如Eclipse RCPApache Karaf

如果您想将整个事情进一步整理,并且需要在群集中运行插件,则可能需要查看Gyrex

我不能在这里分享我的代码,但这里有一些优秀的起点与代码示例:

> http://www.vogella.com/tutorials/EclipsePlugIn/article.html
> https://karaf.apache.org/manual/latest-2.3.x/quick-start.html
> http://www.javaworld.com/article/2077837/java-se/hello–osgi–part-1–bundles-for-beginners.html

原文链接:https://www.f2er.com/java/126369.html

猜你在找的Java相关文章