SpringBoot创建maven多模块项目实战代码

下面是创建Spring Boot Maven多模块项目的完整攻略。

1. 创建Maven父级项目

首先,我们需要创建一个Maven父级项目,它将作为我们多模块项目的容器。使用以下命令创建一个空项目:

$ mvn archetype:generate -DgroupId=com.example -DartifactId=parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. 创建子模块

接下来,我们需要为父级项目创建一个或多个子模块。这些子模块将是我们开发应用程序的实际项目。使用以下命令创建子模块:

$ cd parent
$ mvn archetype:generate -DgroupId=com.example -DartifactId=backend -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

该命令创建了一个名为“backend”的子模块。

3. 添加Spring Boot依赖

在子模块的pom.xml中添加Spring Boot的依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.0</version>
</dependency>

4. 添加Spring Boot插件

在子模块的pom.xml中添加Spring Boot Maven插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

5. 创建Spring Boot应用程序

我们已经准备好开始使用Spring Boot创建我们的应用程序。

  1. 创建类HelloController,并添加处理HTTP GET请求的方法hello:
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }

}
  1. 创建Spring Boot主类,将应用程序的入口点指向HelloController类:
@SpringBootApplication
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }
}

6. 构建和运行应用程序

现在我们已经完成了多模块项目和Spring Boot应用程序的创建。接下来,我们需要使用以下命令构建和运行应用程序:

$ mvn clean install
$ java -jar backend/target/backend-0.0.1-SNAPSHOT.jar

现在可以访问http://localhost:8080/hello来查看应用程序是否运行正常。

示例1

假如我们现在想要创建一个名为“frontend”的子模块,以托管我们的前端Vue.js应用程序。我们可以按照以下步骤创建子模块:

$ cd parent
$ mvn archetype:generate -DgroupId=com.example -DartifactId=frontend -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在frontend子模块的pom.xml中添加Spring Boot的依赖和插件,以及maven-resources-plugin插件:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.0</version>
</dependency>

<!-- 由于我们要开发vue,所以要添加相关的依赖 -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>vue</artifactId>
    <version>2.6.12</version>
</dependency>

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <!-- 资源所在位置,将内容复制到 target/classes 下 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>3.2.0</version>
      <executions>
        <execution>
          <id>copy-resources</id>
          <phase>process-resources</phase>
          <goals>
            <goal>copy-resources</goal>
          </goals>
          <configuration>
              <outputDirectory>${basedir}/target/classes/static</outputDirectory>
              <resources>
                  <resource>
                      <directory>${project.basedir}/src/main/resources</directory>
                      <includes>
                          <include>**/*.*</include>
                      </includes>
                  </resource>
              </resources>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

新建frontend/src/main/resources/static/index.html文件,内容如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Vue App</title>
  <!-- 引入 vue.js 文件 -->
  <script src="/webjars/vue/2.6.12/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    {{ message }}
  </div>
  <script>
    new Vue({
      el: '#app',
      data: {
        message: 'Hello Vue!'
      }
    })
  </script>
</body>
</html>

新建frontend/src/main/java/com/example/frontend/controller/HomeController.java文件,内容如下:

@Controller
public class HomeController {

    @GetMapping("/")
    public String home() {
        return "index";
    }

}

最后,构建和运行应用程序:

$ mvn clean install
$ java -jar frontend/target/frontend-0.0.1-SNAPSHOT.jar

现在可以访问http://localhost:8080/来查看我们的Vue.js应用程序是否运行正常。

示例2

假设我们有一个名为“common”的子模块,我们可以在其中放置所有多个子模块都需要使用的代码和资源。创建common子模块的方式与之前相同,然后在common子模块的pom.xml中添加以下内容:

<!-- 资源所在位置,将内容复制到 target/classes 下 -->
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*</include>
      </includes>
    </resource>
  </resources>
</build>

这将确保我们的common子模块中的资源在多个子模块之间共享。同时,我们可以将任何通用代码放在common子模块中,以便多个子模块可以共享它。确保在每个子模块的pom.xml中添加对common模块的依赖:

<dependency>
  <groupId>com.example</groupId>
  <artifactId>common</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

以上就是创建Spring Boot Maven多模块项目的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot创建maven多模块项目实战代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • IDEA创建Java项目导出Jar包运行

    下面是详细的步骤说明: 1. 创建Java项目 首先,我们需要创建一个Java项目。在IntelliJ IDEA中,可以通过以下步骤创建Java项目: 点击IDEA主界面左上角的 “File” -> “New Project” 在弹出的对话框中,选择 “Java” -> “Java Application” 在配置界面中,为项目命名,选择好路径之…

    Java 2023年5月26日
    00
  • Java实现文件上传和下载的方法详解

    Java实现文件上传和下载的方法详解 文件上传 文件上传是通过HTTP协议中的POST方法进行实现的。在Java中,常见的实现方式有两种: 1. 使用Servlet API Servlet API 提供了实现文件上传的类 javax.servlet.http.Part。我们可以通过 request.getParts() 方法来获取所有上传的文件数据,然后进行…

    Java 2023年5月19日
    00
  • 编写线程安全的JSP程序

    编写线程安全的 JSP 程序需要注意以下几个方面: 避免使用 JavaBean、Session 和 Application 等共享对象作为局部变量。这些对象可能成为多个线程访问的共享资源,从而发生同步问题。 小心使用 JSP 默认的线程同步机制。JSP 的默认行为是重用已编译的页面实例,从而提高性能。但这会导致多个线程共享同一页面实例,如果在页面中使用了共享…

    Java 2023年6月15日
    00
  • JSP导出Excel文件的方法

    JSP导出Excel文件是一种常见的需求,在这里给出一个JSP导出Excel文件的完整攻略。 1. 准备工作 首先需要引入先关依赖。 jxl.jar (可从网络上下载):jxl是一款专门用于处理Excel文件的java类库,其中包含了读取和写入Excel文件等相关操作。 2. 导出Excel文件的主要过程 (1)定义数据集并填充数据 首先,我们需要定义一个要…

    Java 2023年6月15日
    00
  • java哈希算法HashMap经典面试题目汇总解析

    Java哈希算法HashMap经典面试题目汇总解析 简介 哈希表是一种常用的数据结构,它可以快速地进行插入、查找和删除操作。HashMap是Java中常用的一种哈希表实现。 在面试中,经常会被问到关于HashMap的问题,这些问题往往涉及到其内部实现原理、时间复杂度等方面。 本文将为大家汇总一些经典的HashMap面试题目,并提供详细的解析,方便大家在面试中…

    Java 2023年5月19日
    00
  • Springboot应用中线程池配置详细教程(最新2021版)

    我来详细讲解一下“Springboot应用中线程池配置详细教程(最新2021版)”的完整攻略。这个攻略包含以下几个步骤: 1. 导入依赖 首先需要在pom.xml文件中导入spring-boot-starter-web和spring-boot-starter-data-jpa这两个依赖,具体代码如下: <dependencies> <dep…

    Java 2023年5月15日
    00
  • mybatis插件pageHelper实现分页效果

    Mybatis插件PageHelper实现分页效果攻略 1. 前言 Mybatis是一个优秀的ORM框架,但默认不支持分页功能。如果我们想要在Mybatis中实现分页功能,需要手动在SQL语句中添加limit关键字等分页功能代码,这显然是非常繁琐和困难的,而PageHelper插件的出现解决了这一问题。本文将详细介绍如何使用PageHelper插件实现Myb…

    Java 2023年6月15日
    00
  • java中创建写入文件的6种方式详解与源码实例

    Java中创建和写入文件的6种方式详解与源码实例 在Java中,我们可以使用多种方式来创建和写入文件。下面将详细介绍Java中创建和写入文件的6种方式,并提供代码示例。 1. 通过FileOutputStream写入文件 import java.io.*; public class FileOutputStreamExample { public stati…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部