Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 业务web应用平台结构_Java_Spring_Maven - Fatal编程技术网

Java 业务web应用平台结构

Java 业务web应用平台结构,java,spring,maven,Java,Spring,Maven,我想在Java/Spring/Hibernate中开发一个web应用程序,作为一个可以连接插件的业务平台(即CRM插件、ware插件、sales插件)。这些插件可以以树的方式依赖于其他插件。父项目将打包为war,具有所有基本配置和外观(Spring配置、CSS、脚本)、随时可用的用户和组管理、安全设置等 总的来说,我希望它的行为和外观有点像Joomla,但是为了不同的目的使用不同的工具来构建。关于这个项目,我有几个问题: 你知道有任何开源项目提供这样一个平台吗 如果不是,Maven是否适用于管理

我想在Java/Spring/Hibernate中开发一个web应用程序,作为一个可以连接插件的业务平台(即CRM插件、ware插件、sales插件)。这些插件可以以树的方式依赖于其他插件。父项目将打包为war,具有所有基本配置和外观(Spring配置、CSS、脚本)、随时可用的用户和组管理、安全设置等

总的来说,我希望它的行为和外观有点像Joomla,但是为了不同的目的使用不同的工具来构建。关于这个项目,我有几个问题:

  • 你知道有任何开源项目提供这样一个平台吗
  • 如果不是,Maven是否适用于管理这些插件
  • 打包和部署这些插件的最佳方式是什么

  • 最后但并非最不重要的一点是,这是正确的道路,还是一条死胡同?为这些业务需求创建一个单独的web应用程序会更好吗?

    我认为这是一种根据需求设计web应用程序的好方法。我使用插件是因为我有几个客户端使用相同的代码库,但有不同的需求。如果您正在开发一个安装,我会说不要浪费您的时间

    现在来看看操作方法。“插件”是一个非常模糊的概念。我用过插件

    • 拦截方法调用
    • 运行后台进程
    • 在我的web应用程序中添加其他视图的步骤
    现在的问题是,这是如何工作的。方法拦截器使用org.aopalliance.intercept.MethodInterceptor工作。后台处理器使用TimerTask。web应用程序中的其他视图使用SpringMVC路由

    我的插件打包为JAR,并在应用程序启动时作为Spring应用程序上下文被发现


    这些都是非常通用的,但可能会给您一些想法。

    我认为这是设计web应用程序的好方法,具体取决于需求。我使用插件是因为我有几个客户端使用相同的代码库,但有不同的需求。如果您正在开发一个安装,我会说不要浪费您的时间

    现在来看看操作方法。“插件”是一个非常模糊的概念。我用过插件

    • 拦截方法调用
    • 运行后台进程
    • 在我的web应用程序中添加其他视图的步骤
    现在的问题是,这是如何工作的。方法拦截器使用org.aopalliance.intercept.MethodInterceptor工作。后台处理器使用TimerTask。web应用程序中的其他视图使用SpringMVC路由

    我的插件打包为JAR,并在应用程序启动时作为Spring应用程序上下文被发现


    这些都是非常一般的,但可能会给你一些想法。构建插件模块有很多方法。 一些想法:

    您可以将每个插件模块打包为一个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是如何实现的

    希望有帮助

    你知道有什么开源软件吗 普罗耶