目录
工程目录结构
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>
- 此时模块的parent为spring-boot-starter-parent,将其修改为social-network-serverless
-
修改父模块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