1. 创建多模块的spring boot工程

目录

 

工程目录结构

创建social-network-serverless工程

创建子模块

创建social-network-serverless-web模块

创建其他子模块

使用父模块的pom对整个工程的版本进行管理

修改子模块的pom,建立子模块之间的依赖关系

在front工程中创建Controller

启动项目

完整代码


工程目录结构

git地址:https://github.com/JessicaWin/social-network-serverless/tree/V0.1

social-network-serverless

----social-network-serverless-api

----social-network-serverless-web

----social-network-serverless-front

----social-network-serverless-service

----social-network-serverless-dao

----social-network-serverless-dto

----social-network-serverless-common

创建social-network-serverless工程

  • Intellij -> File -> New Project,在弹出的对话框中选择Spring Initializer, 使用默认配置:jdk可以选择自己常用的版本,starter service url就选择默认,然后Next进入下一步配置。

  • 配置项目的group和artifact等信息(可以根据自己需要进行配置),点击Next进入下一步配置。
    • Grouop: com.jessica
    • Artifact:social-network-serverless
    • Type:Maven Project
    • Packing:jar
    • Package: com.jessica.social.network.serverless

  • 配置项目的dependency,由于这个项目是作为父模块的,什么都不用选,直接点击Next进入下一步配置。
  • 配置项目名称和位置,这里也无需修改,直接点击Finish完成项目创建。
  • 删除项目的src文件夹
  • 修改pom文件:
    • 删除所有的dependency
    • 删除plugin
    • 添加(修改)打包类型为pom: <packaging>pom</packaging>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jessica</groupId>
    <artifactId>social-network-serverless</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>social-network-serverless</name>
    <description>spring boot project with aws serverless service</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>
</project>

创建子模块

创建social-network-serverless-web模块

  • 首先选中social-network-serverless project,然后Intellij -> File -> New Module,在弹出的对话框中选择Spring Initializer, 使用默认配置:jdk可以选择自己常用的版本,starter service url就选择默认,然后Next进入下一步配置。
  • 配置项目的group和artifact等信息(可以根据自己需要进行配置),点击Next进入下一步配置。
    • Grouop: com.jessica
    • Artifact:social-network-serverless-web
    • Type:Maven Project
    • Packing:jar
    • Package: com.jessica.social.network.serverless
  • 配置项目的dependency,由于这个项目是作为web模块,也就是spring boot的启动程序所在的模块,因此需要配置spring web的依赖,左侧栏中选择Web,然后选中Spring Web,点击Next进入下一步配置。

  • 配置项目名称和位置,这里也无需修改,直接点击Finish完成项目创建。
  • 修改当前模块的pom文件:
    • 此时模块的parent为spring-boot-starter-parent,将其修改为social-network-serverless
      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      	<modelVersion>4.0.0</modelVersion>
      	<parent>
      		<groupId>com.jessica</groupId>
      		<artifactId>social-network-serverless</artifactId>
      		<version>0.0.1-SNAPSHOT</version>
      	</parent>
      	<groupId>com.jessica</groupId>
      	<artifactId>social-network-serverless-web</artifactId>
      	<version>0.0.1-SNAPSHOT</version>
      	<name>social-network-serverless-web</name>
      	<description>web project for soaicl network</description>
      
      	<properties>
      		<java.version>1.8</java.version>
      	</properties>
      
      	<dependencies>
      		<dependency>
      			<groupId>org.springframework.boot</groupId>
      			<artifactId>spring-boot-starter-web</artifactId>
      		</dependency>
      
      		<dependency>
      			<groupId>org.springframework.boot</groupId>
      			<artifactId>spring-boot-starter-test</artifactId>
      			<scope>test</scope>
      			<exclusions>
      				<exclusion>
      					<groupId>org.junit.vintage</groupId>
      					<artifactId>junit-vintage-engine</artifactId>
      				</exclusion>
      			</exclusions>
      		</dependency>
      	</dependencies>
      
      	<build>
      		<plugins>
      			<plugin>
      				<groupId>org.springframework.boot</groupId>
      				<artifactId>spring-boot-maven-plugin</artifactId>
      			</plugin>
      		</plugins>
      	</build>
      
      </project>
  • 修改父模块social-network-serverless的pom文件,添加子模块的module信息

    <modules>
            <module>social-network-serverless-web</module>
    </modules>

     

创建其他子模块

  • 首先选中social-network-serverless project,然后Intellij -> File -> New Module,在弹出的对话框中选择Maven, 使用默认配置,然后Next进入下一步配置。

  • 配置项目的名称,位置和artifact信息(可以根据自己需要进行配置),点击Finish完成模块创建。
    • Parent:social-network-serverless
    • Name:social-network-serverless-front
    • Grouop: com.jessica
    • Artifact:social-network-serverless-front

  • 其他模块的创建方法完全一致,只需要修改Name和Artifact就可以

使用父模块的pom对整个工程的版本进行管理

修改父模块的pom文件,对子模块的版本进行统一管理:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jessica</groupId>
    <artifactId>social-network-serverless</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>social-network-serverless</name>
    <description>spring boot project with aws serverless service</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <modules>
        <module>social-network-serverless-web</module>
        <module>social-network-serverless-front</module>
        <module>social-network-serverless-service</module>
        <module>social-network-serverless-dao</module>
        <module>social-network-serverless-dto</module>
        <module>social-network-serverless-common</module>
    </modules>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-web</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-front</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-service</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-dao</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-dto</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jessica</groupId>
                <artifactId>social-network-serverless-common</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

修改子模块的pom,建立子模块之间的依赖关系

  • social-network-serverless-web依赖social-network-serverless-front
  • social-network-serverless-front依赖social-network-serverless-service,social-network-serverless-common
  • social-network-serverless-service依赖social-network-serverless-dao,social-network-serverless-common
  • social-network-serverless-dao依赖social-network-serverless-dto,social-network-serverless-common

在front工程中创建Controller

  • 修改front的pom文件,添加spring-boot-starter-web依赖

创建UserController文件,位于com.jessica.social.network.serverless.controller包中

package com.jessica.social.network.serverless.controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping(path = "/{id}")
    public String getUserById(@PathVariable String id) {
        return "user: " + id;
    }
}

启动项目

在social-network-serverless-web模块中找到 SocialNetworkServerlessWebApplication类,该类即为使用spring initializer创建social-network-serverless-web模块时自动创建的启动类,运行该启动类,浏览器中输入http://127.0.0.1:8080/user/1 进行访问,返回user: 1。

完整代码

git地址:https://github.com/JessicaWin/social-network-serverless/tree/V0.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值