首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Java项目由开发人员“可扩展”?

如何使Java项目由开发人员“可扩展”?
EN

Stack Overflow用户
提问于 2015-03-16 21:59:01
回答 1查看 164关注 0票数 1

我正在处理一个服务器引擎,我不知道以什么形式分发它。它非常模块化,并且使用接口/抽象类。

如果是:

  • 库(没有入口点,编写自己的main()并调用new Server().setSomeHandler(myHandler).run())
  • 二进制文件(配置文件的可执行入口点,您可以在其中向JAR注入处理程序)
  • 还有别的吗?

基本上,开发人员应该能够完全扩展或改变服务器的工作方式。我不喜欢把它变成一个库的想法,因为它应该是一个独立的平台,一个完整的服务器系统。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-16 22:59:45

提供一种编程方式不仅是一个可执行文件,而且是多功能的。这两种方式并不是相互排斥的。毕竟,即使开发人员提供了一个处理程序,在内部您可能仍然需要调用类似示例中的setter来实际使用该处理程序。公开这个API应该不会太困难。您仍然可以提供一个小型的启动程序,如果需要的话,它可以加载一些配置文件并将其封装在一些API调用中。

更重要的问题是,是否有预定义的扩展点可供开发人员插入他们自己的实现,还是一切都是完全模块化和可交换的?

对于提供预定义接口实现的简单方法,可以使用ServiceLoader/SPI机制。你可以用它建立一个基本的插件系统。

如果您想要创建一个平台,类似于OSGi的东西似乎更合适。在这里,您可以为细粒度组件/服务定义API/SPIs。然后,开发人员可以提供自己的模块来扩展服务器,甚至替换默认模块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29087716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档