Spring模块化mvc Web应用程序

时间:2016-05-31 05:30:09

标签: spring spring-mvc architecture

我不确定这是否是合适的地方,但我会尝试一下。我原来是一个php开发人员,现在想尝试在春天创建一个模块化的Java Web应用程序。这似乎比我以前更复杂或比我预期的要复杂得多..我谷歌很多时间,但我没有找到合适的解决方案(或者我没有注意到......)所以我真的试图找出自己的解决方案......

我希望有一个像这样结构的项目:

  

主项目(父项目:使用公共类和所有登录资料)

     
      
  • modul A:例如“wheels-admin”
  •   
  • 模块B:例如“car-admin”,其具有与模块A的相关性
  •   
  • modul C:例如“shop-system”,它依赖于模块A和C
  •   

模块A和B仅在用户成功锁定时可用。主项目是所有模块的父项目,主项目的所有类都可在模块中访问。

好的,现在是我的“额外”要求。每个项目和模块都必须是一个Web应用程序,因为它们还具有静态资源(如css,js,jps / html ...),而不仅仅是服务/类。所以我不想只分享服务,这就是为什么我明白我无法将模块创建为jar。我想将部分应用程序划分为单独的模块(war)。根据我的理解,不可能将战争创建为mvc Web应用程序中的依赖项,因为它也是一场战争。

编辑:主要问题: 如何将spring mvc Web应用程序拆分为多个模块?但不仅是服务,还有statis / resource的东西。换句话说,如何创建具有多个war-files的Web应用程序?

详细问题

  1. 我的问题的答案是仅在mvc web应用程序上创建并仅使用子文件夹结构创建“模块”吗?所以他们不是真正的模块和只有一个应用程序的更多部分。 (我不喜欢这样!)

  2. 该解决方案是“双子座蓝图”应用程序吗?如果是这样,您能否为我提供教程或类似内容的链接,其中描述了模块化Web应用程序?

  3. 我的问题的答案是创建多个独立的mvc Web应用程序吗?如果是这样,我如何创建应用程序上下文?例如,模块如何在父项目中知道用户已登录?我是否必须配置每个模块中的所有内容(例如数据库连接

  4. 还有其他方法可以“共享”服务和资源文件等依赖吗?

  5. 我知道EAR项目可能包含一些战争文件和类似的内容......或者maven-parent-project能够“导入”其他Web应用程序(模块)......但是如何在Web服务器上运行它来启动完整的Web应用程序?

  6. 最后,我只想要一个模块化的Web应用程序,将应用程序的各个部分“外包”到一个模块中。如果您有其他解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

请看一下Jhipster(Spring MVC + AngularJs + Boot + ...)。他们创建了This

很容易做一个主要的'具有所有用户管理的应用程序,并确保与其他服务的通信。

所有模块都是不同的jar,带有嵌入式tomcat,每个模块在不同的端口上运行。所以最初,你可以在同一台机器上运行它们。