Java 业务web应用平台结构
我想在Java/Spring/Hibernate中开发一个web应用程序,作为一个可以连接插件的业务平台(即CRM插件、ware插件、sales插件)。这些插件可以以树的方式依赖于其他插件。父项目将打包为war,具有所有基本配置和外观(Spring配置、CSS、脚本)、随时可用的用户和组管理、安全设置等 总的来说,我希望它的行为和外观有点像Joomla,但是为了不同的目的使用不同的工具来构建。关于这个项目,我有几个问题:Java 业务web应用平台结构,java,spring,maven,Java,Spring,Maven,我想在Java/Spring/Hibernate中开发一个web应用程序,作为一个可以连接插件的业务平台(即CRM插件、ware插件、sales插件)。这些插件可以以树的方式依赖于其他插件。父项目将打包为war,具有所有基本配置和外观(Spring配置、CSS、脚本)、随时可用的用户和组管理、安全设置等 总的来说,我希望它的行为和外观有点像Joomla,但是为了不同的目的使用不同的工具来构建。关于这个项目,我有几个问题: 你知道有任何开源项目提供这样一个平台吗 如果不是,Maven是否适用于管理
最后但并非最不重要的一点是,这是正确的道路,还是一条死胡同?为这些业务需求创建一个单独的web应用程序会更好吗?我认为这是一种根据需求设计web应用程序的好方法。我使用插件是因为我有几个客户端使用相同的代码库,但有不同的需求。如果您正在开发一个安装,我会说不要浪费您的时间 现在来看看操作方法。“插件”是一个非常模糊的概念。我用过插件
- 拦截方法调用
- 运行后台进程
- 在我的web应用程序中添加其他视图的步骤
这些都是非常通用的,但可能会给您一些想法。我认为这是设计web应用程序的好方法,具体取决于需求。我使用插件是因为我有几个客户端使用相同的代码库,但有不同的需求。如果您正在开发一个安装,我会说不要浪费您的时间 现在来看看操作方法。“插件”是一个非常模糊的概念。我用过插件
- 拦截方法调用
- 运行后台进程
- 在我的web应用程序中添加其他视图的步骤
这些都是非常一般的,但可能会给你一些想法。构建插件模块有很多方法。 一些想法: 您可以将每个插件模块打包为一个jar,并在这个jar的类路径根中放置一个带有bean配置的spring配置文件,以便在使用特定插件时使用。只需将此文件添加到web.xml中的contextConfigLocation参数,即可在web应用程序上“打开”此包的bean:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:module1.xml
classpath:module2.xml
classpath:module3.xml
classpath:module4.xml
</param-value>
</context-param>
org.springframework.web.context.ContextLoaderListener
上下文配置位置
类路径:module1.xml
类路径:module2.xml
类路径:module3.xml
类路径:module4.xml
因此,您可以在web应用程序中使用这些bean。另一种方法是使用注释驱动的方法。或者你可以混合使用这些方法
不久前,我构建了一种通过检测类路径中特定抽象类(契约)的所有实现来自动热检测(在执行时,无需重新启动应用程序)桌面应用程序中的插件的方法。所以,我要做的就是构建一个新插件,实现这个“契约”。我用了一些“类加载器”来做这件事
当谈到“模块”时,也许你想了解一下
嗯。。。这些是一些想法。我希望它在任何方面都有帮助 构建插件模块有很多方法。 一些想法: 您可以将每个插件模块打包为一个jar,并在这个jar的类路径根中放置一个带有bean配置的spring配置文件,以便在使用特定插件时使用。只需将此文件添加到web.xml中的contextConfigLocation参数,即可在web应用程序上“打开”此包的bean:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:module1.xml
classpath:module2.xml
classpath:module3.xml
classpath:module4.xml
</param-value>
</context-param>
org.springframework.web.context.ContextLoaderListener
上下文配置位置
类路径:module1.xml
类路径:module2.xml
类路径:module3.xml
类路径:module4.xml
因此,您可以在web应用程序中使用这些bean。另一种方法是使用注释驱动的方法。或者你可以混合使用这些方法
不久前,我构建了一种通过检测类路径中特定抽象类(契约)的所有实现来自动热检测(在执行时,无需重新启动应用程序)桌面应用程序中的插件的方法。所以,我要做的就是构建一个新插件,实现这个“契约”。我用了一些“类加载器”来做这件事
当谈到“模块”时,也许你想了解一下
嗯。。。这些是一些想法。我希望它在任何方面都有帮助
你知道有什么开源软件吗
提供这样一个平台的项目
准备好出发了吗
看看
如果不是,maven是否适用于
管理那些插件
是的。看看如何使用它
包装和包装的最佳方式是什么
部署那些插件?
再次检查SpringRoo或AppFuse是如何实现的
希望有帮助
你知道有什么开源软件吗
普罗耶