Spring Boot和Angular(5)项目结构

时间:2018-01-29 14:09:38

标签: spring angular maven spring-boot angular-cli

我对同一项目中这些技术的最佳实践有疑问。什么是推荐和最常用的项目结构?

我看到了如何设计项目结构的三种方法:

  1. 创建maven多模块项目,并创建2个模块(带有角度cli项目的前端和带有spring项目的后端)
  2. 在路径src/main/webapp
  3. 上创建角度cli项目到spring项目
  4. 这个选项类似于第二个,在路径src/main/webapp上也会在spring项目中创建angular cli,除了带有后缀* .json,* .ts等的配置文件...这些文件将在pom中的root文件中。因此webapp文件夹将仅包含源文件和资源(jhipster样式)。
  5. 你推荐什么?另外,当我选择其中一个选项时,是否可以配置项目将角度源文件导出为可部署的JAR文件?谢谢你的建议。

1 个答案:

答案 0 :(得分:4)

我一直在把源代码放在你通常期望的地方 - 在'src / main'目录下。所以,我有src / main / java和src / main javascript,后面的目录中有角度应用程序。

我将角度应用程序设置为src / main / resources / static / ui,并配置SpringBoot应用程序从那里提供服务。

- 其他信息 - 为Angular应用程序的index.html服务,我用这个:

@Bean
public WebMvcConfigurerAdapter forwardToIndex() {
    final String uiForward = "redirect:/ui/index.html";
    final String[] fauxRoots = new String[] {"/", "/index.html", "/ui", "/ui/"};

    return new WebMvcConfigurerAdapter() {
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            for(String path: fauxRoots) {
                registry.addViewController(path).setViewName(uiForward);
            }
        }

    };
}

我将我的Angular应用程序内置到src / main / resources / static / ui中,而Spring默认会提供来自src / main / resources / static的静态内容(我认为),这样“只是工作”