我们正在使用Spring MVC来构建我们的应用程序,我们尝试使用ajax与服务器进行通信,我们只通过apache tiles渲染基本页面。
还有一些模块,例如:
app-data
将负责一些数据上传,处理和持久化。并且网址映射可能如下所示:
restful-like service:
/api/data/excel (post,get,delete)
/api/data/pdf (post,get,delete)
pages:
/data (home page for the data module, return a rendered html page)
app-user
将负责用户管理,网址映射:
restful-like service:
/api/user (post,get,delete,put)
pages:
/user (home page for the user module, return a rendered html page)
app-site
将负责其他网页,例如:
/about
/contact
/feedback
.....
顺便说一句,我们还有另一个原因,我们将它们分成不同的模块,其中一些模块可能在其他项目中重复使用。我们希望重复使用所有页面和休息服务。
现在这是应用程序结构:
app
app-data
build.gradle
src/main
java
resources
app-user
build.gradle
src/main
java
resources
app-site
build.gradle
src/main
resources
webapp
static
WEB-INF
jsps
header.jsp
footer.jsp
tiles
data.jsp
user.jsp
我们预计最终的应用程序与war包捆绑在一起包含以下内容:
app
static
WEB-INF
classes
xx.properties
lib
app-data.jar (with resources including *.properties)
app-user.jar (with resources including *.properties)
jsps
.....
而且,不同的模块可能包含* .properties的一些不同的配置,我们想要覆盖它们中的一些,例如,一旦我们有了一个新项目,我们需要user
功能,我们复制app-site
和app-user
,并覆盖/app-site/src/main/resources/*.properties
中的属性,然后就完成了。
我想知道这是否可能?
更新
我不是试图将app-site
与jar一样(认为可以使用spring boot或其他东西),app-site
本身仍然是一个war项目,而它的依赖项({{ 1}}和app-data
)被捆绑为罐子。
答案 0 :(得分:0)
我认为您可以轻松地将控制器打包在不同的罐子中,根据我的说法在您的情况下不是问题,但是问题将与js,css和html等静态内容有关。要将它们提供给浏览器,您必须将它们标记为mvc资源。让我们假设您的jar是遵循以下结构。
src
main
java (all controllers)
resources
webcontent
css
js
app.js
如上所示,静态内容位于resources / webcontent文件夹中。它可以作为mvc资源,如下所示。
<mvc:resources mapping="/resources/**" location="classpath:/webcontent/"/>
您可以在html中获取app.js,如下所示
<script type="text/javascript" src="js/app.js"></script>