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日

相关文章

  • MySql多表查询 事务及DCL

    MySQL是一个开源的关系型数据库管理系统,用于管理大量数据,支持多种查询操作,而多表查询、事务及DCL(数据控制语言)是使用MySQL时必须掌握的重要知识点。 多表查询 在MySQL中,多表查询是指同时使用多个表中的数据进行查询操作。多表查询通常使用JOIN关键字实现,常见的JOIN类型有INNER JOIN、LEFT JOIN、RIGHT JOIN和FU…

    Java 2023年6月1日
    00
  • 流式图表拒绝增删改查之kafka核心消费逻辑下篇

    首先我们需要了解一下本篇攻略讲解的是什么。 本文的主要内容是讲解如何将Kafka的核心消费逻辑结合流式图表进行可视化呈现,进而达到更好的监控和管理分布式系统的目的。 在具体讲解之前,我们需要明确几个概念: Kafka:一个高吞吐量、分布式的消息队列系统,主要用于解决大数据流的问题。 流式图表:一种可视化数据流的工具,可以通过图形化的方式展示数据流中的数据和流…

    Java 2023年5月20日
    00
  • C#实现简单打字游戏

    下面是C#实现简单打字游戏的完整攻略。 步骤一:创建项目 在Visual Studio中创建Windows Form应用程序项目,项目名称为“TypingGame”。 步骤二:设计UI界面 通过Visual Studio的拖拽功能,设计一个简单的UI界面,包括游戏进度条、分数显示、打字区域和开始按钮等控件。 示例1: <ProgressBar x:Na…

    Java 2023年5月19日
    00
  • IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境的步骤详解

    IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境的步骤详解 1. 环境准备 在开始搭建SSM开发环境之前,我们需要准备以下环境: JDK 1.8或以上版本 IntelliJ IDEA Maven SpringBoot 2. 创建SpringBoot项目 在IntelliJ IDEA中创建一个SpringBoot项目,可以使用Sprin…

    Java 2023年5月18日
    00
  • Java实战之用hutool-db实现多数据源配置

    当我们的应用需要连接多个数据库时,常规的做法是通过JDBC来手动连接和操作不同的数据源。这样的代码通常会显得冗长和重复,对于代码维护和可读性都造成了一定的负担。事实上,Java中有一些工具库可以帮助我们更容易地实现多数据源配置和自动化操作,比如常用的HikariCP、Druid等数据库连接池,还有hutool-db库。 Hutool-db简介 Hutool-…

    Java 2023年5月20日
    00
  • spring boot高并发下耗时操作的实现方法

    一、介绍 在高并发的场景下,应用程序的性能是至关重要的,耗时的操作(如大量IO操作或者复杂的计算任务)可能会导致整个系统的瓶颈。本文将介绍一些实现方法,来处理在Spring Boot应用程序中高并发下的耗时操作。 二、异步非阻塞处理 异步非阻塞处理是通过将请求和相应分离,将耗时操作放在一个线程中执行,从而提高并发处理能力。在Spring Boot中,可以通过…

    Java 2023年5月20日
    00
  • 深入解析kafka 架构原理

    当我们使用 Apache Kafka 作为消息中心时,需要了解它的架构原理,以便更好地在应用程序中使用它。 Kafka 架构 Kafka 是一个分布式发布订阅消息系统。它的主要组件包括: Broker – 处理传入和传出的消息并维护消息的存储 Topic – 是发布和订阅消息的名称 Partition – 一个主题可能被分成多个分区。每个分区都是一个有序的,…

    Java 2023年6月2日
    00
  • springSecurity实现简单的登录功能

    下面我将为您详细讲解“springSecurity实现简单的登录功能”的完整攻略。 1. 添加依赖 Spring Security是Spring的一个子项目,我们只需要在pom.xml文件中添加以下依赖即可: <dependency> <groupId>org.springframework.security</groupId&…

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