一、目标
1、创建一个全新的SpringBoot项目。
2、module之间依赖关系如下:
- base的父模块为:spring-boot-starter-parent
- base包含的子模块有:base-common
- user的父模块为:base
- user包含的子模块有:user-api、user-service
3、user-service模块,新建启动类,主方法可以运行启动。
二、代码实例
1、base项目、user项目,module层级结构:
2、pom.xml文件,关键配置信息:
(1)base模块:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.ohz.base</groupId>
<artifactId>base</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>base</name>
<description>基础项目</description>
<packaging>pom</packaging>
<modules>
<module>base-common</module>
</modules>
<properties>
<java.version>1.8</java.version>
<maven.compile.source>1.8</maven.compile.source>
<maven.compile.target>1.8</maven.compile.target>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
</dependencies>
(2)base-common模块:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ohz.base</groupId>
<artifactId>base</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ohz.base</groupId>
<artifactId>base-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>base-common</name>
<packaging>pom</packaging>
(3)user模块:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ohz.base</groupId>
<artifactId>base</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ohz.user</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user</name>
<description>用户模块</description>
<packaging>pom</packaging>
<modules>
<module>user-api</module>
<module>user-service</module>
</modules>
<properties>
<java.version>1.8</java.version>
<maven.compile.source>1.8</maven.compile.source>
<maven.compile.target>1.8</maven.compile.target>
</properties>
(4)user-api模块:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ohz.user</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ohz.user</groupId>
<artifactId>user-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user-api</name>
<description>用户服务提供外部接口</description>
(5)user-service模块:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ohz.user</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ohz.user</groupId>
<artifactId>user-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user-service</name>
<description>用户服务</description>
<dependencies>
<!-- 项目中有 @SpringBootApplication注解标识的启动类时,需要依赖此jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>user-service</finalName>
<plugins>
<!--当项目依赖"spring-boot-maven-plugin"时,项目中必须配置SpringBoot启动类及主方法;否则maven打包时就会报错-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${maven.compile.source}</source>
<target>${maven.compile.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
3、通过 @SpringBootApplication 注解,创建启动类 :
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
System.out.println("用户服务,启动完成");
}
}
4、项目运行结果: