首先新建一个springboot父项目
这里不选择其他的,直接next就好了,后续需要再添加。
建立完成后项目结构如下,但是这是一个父项目,做版本控制,什么都不需要,所以我们要删除如下的东西。
选中的全部删除
然后开始建立子模块
注意这里需要选中springboot-dubbo然后右键
选择其中的quickstart
继续创建2个module,分别为module和server,至此多模块springboot项目创建完成。建立完成后的项目结构:
父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>
<packaging>pom</packaging>
<modules>
<module>module</module>
<module>server</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>parent</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
测试
model工程是我们放实体类和xml实现的地方,我们首先创建一个测试实体类user。
public class User {
private String name;
private Integer age;
//省略get set方法
}
server是我们逻辑处理和controller存放的地方,首先我们在父pom中添加web依赖,即springboot-dubbo的pom:
<!--引入SpringBoot-WEB模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
然后创建测试用的启动类,及controller,结构如下:
SpringbootApplication:
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
@Controller
@RequestMapping("user")
public class HelloController {
@RequestMapping("/printUser")
@ResponseBody
public User printUser(User user) {
return user;
}
}
这里可以我们会报错,引入不了User这个类,因为我们要设置server依赖于工程model,server工程右键
然后apply,这时我们就可以导入User这个类了
但是因为我们是maven项目这种设置我们下次启动还是回丢失对Model的引用,所以我们需要在pom中引入对model的依赖
在server pom中添加如下依赖(可以根据提示,自动导入也是可以的)
<dependency>
<groupId>com.example</groupId>
<artifactId>module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
然后我们开始启动测试,启动 SpringbootApplication,然后看见控制台输出:
可以看到端口号配置生效
然后再浏览器访问:http://localhost:8083/user/printUsername=‘你好’&age=666
浏览器显示:
至此多模块springboot项目构建完成。