如何将Angular前端与Spring项目结合?

3

我一直在寻找一个项目的示例结构,例如,当你有 Java/Spring 后端和 Angular2 前端时。

我的第一个想法是它们将分别存放在两个顶级文件夹中,如下:

src/
ui/

这样一来,我可以像它们真正感觉的那样将它们视为独立的应用程序(因为Angular中的逻辑与后端发生的事情是不同的)。
但是,我考虑到这将使得在浏览后端时更难找到实际上是给定包的前端表示。所以我想使用如下结构:
src/main/java
src/main/javascript

然后按照类似Java的包文件夹结构进行操作。这样可以更容易地看到UI中的每个组件所在的位置,以及哪个控制器/服务负责响应其请求。

然而,我似乎无法理解两者哪一个对未来的项目更好。您能否推荐一些文章/指南来应对这种情况(混合技术和项目结构),或者也许这是我不知道的特定堆栈,已经有一些定义良好的最佳实践)。


进一步阐述,我认为Angular更像是一个独立的应用程序,而不是Java的一部分。由于我不会使用服务器端渲染或类似的内容,我的个人意见是它应该有自己的UI文件夹,并且只需遵循类似于Java包文件夹命名的方式即可。然而,我不确定当我投入到项目中时是否会认为这是一种可持续和可扩展的结构,因此我向你们询问意见。 - Mackiavelli
1
我使用一个多模块的Gradle项目(但是使用Maven也可以),包含两个模块:frontend(前端)和backend(后端)。后端采用标准的Java/Spring结构。前端采用标准的angular-cli结构。前端模块的Gradle任务只是用于封装ng命令。后端的war/jar任务依赖于前端构建,并将前端dist文件夹中生成的构建成果包含到war/jar中。 - JB Nizet
1个回答

0

我遵循了JHipster的方法,其中Angular2-Structure位于

src/main/webapp/app

优点在于,您可以将多个前端技术捆绑在 Angular 的 Web 应用程序中,并保持一切分离但在一个项目中。我认为这使得它在高度复杂的情况下更加强大。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接