我正在尝试制作一个基于插件的应用程序,这意味着除了基本框架之外,其他功能应该以插件方式添加。
这种系统的主要问题在于如何在运行时加载新插件。我不想在安装新插件时重新编译整个项目。就像Eclipse一样,在安装新插件后,用户只需要重启它。
因此,我第一个想法是使用Java反射在运行时加载类。可能会有一些插件配置文件,系统读取它们并使用反射加载插件类。也许我还可以使用Spring框架,因为它的控制反转正好符合我的要求。
我正在研究的另一个想法是使用EJB容器。当插件是EJB时,我可以将它们打包成JAR并部署到EJB容器中,然后可以使用JNDI来访问它们。但这仅适用于插件是EJB的情况。
总之,我对系统设计还是个新手。所以我发布了这个话题,并希望听取您的意见。顺便说一下,您有没有关于系统设计的好书推荐?
非常感谢!
这种系统的主要问题在于如何在运行时加载新插件。我不想在安装新插件时重新编译整个项目。就像Eclipse一样,在安装新插件后,用户只需要重启它。
因此,我第一个想法是使用Java反射在运行时加载类。可能会有一些插件配置文件,系统读取它们并使用反射加载插件类。也许我还可以使用Spring框架,因为它的控制反转正好符合我的要求。
我正在研究的另一个想法是使用EJB容器。当插件是EJB时,我可以将它们打包成JAR并部署到EJB容器中,然后可以使用JNDI来访问它们。但这仅适用于插件是EJB的情况。
总之,我对系统设计还是个新手。所以我发布了这个话题,并希望听取您的意见。顺便说一下,您有没有关于系统设计的好书推荐?
非常感谢!