创建项目
创建一个 SpringBoot 项目非常的简单,简单到这里根本不用再提。你可以在使用 IDEA 新建项目时直接选择 Spring Initlalize
创建一个 Spring Boot 项目,也可以使用 Spring 官方提供的 Spring Boot 项目生成页面得到一个项目。
下面介绍一下使用 Spring 官方生成的方式,如果你已经有了一个 Spring Boot 项目,这部分可以直接跳过。
- 填写
group
和Artifact
信息,选择依赖(我选择了 Spring Web 和 Lombok )。
spring 官网创建初始项目
- 点击
Generate
按钮下载项目。
- 打开下载的项目,删除无用的
.mvn
文件夹,mvnw
、mvnw.cmd
、HELP.md
文件。
到这里已经得到了一个 Spring Boot 初始项目了,我们直接导入到 IDEA 中,看一眼 pom.xml
的内容。
<?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.5.RELEASE</version> <relativePath/><!-- lookup parent from repository --> </parent> <groupId>com.wdbyte</groupId> <artifactId>springboot-module-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-module-demo</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-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </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>
把目录结构调整成自己想要的结构,然后添加 controller
和 entity
用于测试。
项目目录结构
ProductController 类源代码。
@RestController @RequestMapping("/product") publicclass ProductController { /** * 获取商品列表 * * @return */ @GetMapping("/list") public Map list() { // 模拟查询商品逻辑 Product product = new Product(); product.setProductName("小米粥"); product.setProductPrice(new BigDecimal(2.0)); product.setProductStock(100); Map<String, Object> resultMap = new HashMap<>(); resultMap.put("code", 000); resultMap.put("message", "成功"); resultMap.put("data", Arrays.asList(product)); return resultMap; } }
Product 类源代码。
@Data publicclass Product { /** 商品名称. */ private String productName; /** 商品价格. */ private BigDecimal productPrice; /** 商品库存。*/ privateint productStock; }
模块化
借助 IDEA 工具可以快速的把项目改造成 maven 多模块,这里我们把准备测试 demo 拆分为 common 和 web 两个模块,common 模块存放实体类。web 模块存放 controller 层(这里项目虽小,拆分只是为了演示)。话不多说,直接开始。
- 配置主 pom.xml 打包方式 为 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> <!-- 配置主 pom 打包方式为 pom --> <packaging>pom</packaging> .... ....
- 创建 common 模块
项目直接 new -> module。
选择 maven -> next,填写模块名称。
填写模块名称
继续 next 完成模块创建。
- 创建 web 模块
web 模块的创建和 common 模块如出一辙,不再赘述。完成两个模块的创建之后,你会发现你的主 pom.xml 文件里自动添加了 module 部分。
<modules> <module>product-common</module> <module>product-web</module> </modules>
- 移动代码到指定模块
移动 Product.java
到 product-common
模块,其他部分代码和 resource 部分直接移动到 product-web
模块,移动完后你的代码结构是这个样子。
多模块目录结构
到这里,多模块已经拆分完成了, 但是 ProductController
代码里的红色警告让你发现事情还没有结束。