以下Java代码在自主计算领域如何有用?
在我正在学习的书中,他们展示了这个
Java代码:
Class c = ClassLoader.getSystemClassLoader().loadClass(name); Class type = this.getClass().getClassLoader().loadClass(name); Object obj = type.newInstance(); 此代码用于动态加载Java类.这本书继续说:
使用这样的代码有什么好处?自主计算的概念通常是“自主系统管理”.这与Java程序如何受JVM控制有关? 来源:自动计算原理设计(由拉兰达) 解决方法
好处是可以在运行时决定实际加载和使用什么类.对于简单的Java程序,您有一个类的单个实现没有任何好处.
像Osgi这样的复杂环境(Eclipse的基础)为每个模块使用单独的类加载器.这样可以带来灵活性以及在运行时更换模块的可能性. 另一个“经典”用例是在运行时加载数据库驱动程序.您可能想要连接到MySQL数据库或Oracle,并且都使用JDBCDriver的不同实现. 加成: 讨论eclipse / osgi类加载概念的Alex Blewitt的一篇非常好的文章可以在here中找到. 在我自己的编码经验中,我使用eclipse插件进行企业级Web监控项目.监控基本上是关注网络上不断刮擦的资源??.每个这样的资源由监视器插件的实现来监视.并不是所有的资源都由我们控制,所以当他们改变时,我们必须调整处理该资源的插件.当我们卸载旧的插件模块时,整个监控应用程序可以继续运行.所有在运行时,几乎没有停机时间(仅对于需要交换的模块)当然,我使用Eclipse胖客户端平台(RCP)隐藏了每个插件的类加载器.您只需要指定哪个插件依赖于哪个和实际的类加载,然后由RCP平台完成. 像Tomcat这样的Web服务器使用相同的方法,虽然我没有太多的Tomcat经验. 直接实现动态类加载系统可能是一个很好的练习,但是对于现实世界的应用程序,我将明确地研究生产级实现,如Eclipse RCP或Apache Karaf 如果您想将整个事情进一步整理,并且需要在群集中运行插件,则可能需要查看Gyrex 我不能在这里分享我的代码,但这里有一些优秀的起点与代码示例: > http://www.vogella.com/tutorials/EclipsePlugIn/article.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |