Xem toàn bộ series bài viết hướng dẫn xây dựng ứng dụng Questions Management tại đây.
Core Option Service là core service cuối cùng của giai đoạn 1 mà chúng ta cần phải tạo, dùng để quản lý các lựa chọn của một câu hỏi. Nó cũng sử dụng các dependencies tương tự như 2 core service mà chúng ta đã xây dựng trong những bài viết trước.
Mình cũng sẽ chỉ tóm tắt các bước quan trọng trong quá trình tạo project core-option-service như sau:
Ở cửa sổ New Spring Starter Project, sau khi điền thông tin về project của chúng ta, phần Location các bạn cũng cần trỏ đến thư mục core của project questions-management:
Ở phần chọn các dependencies cần sử dụng cho project core-option-service, tương tự như các core service khác, chúng ta cũng sẽ sử dụng những dependencies sau các bạn nhé:
- Reactive Web: xem thêm Giới thiệu về Spring WebFlux
- Reactive MongoDB: xem thêm Reactive REST APIs với Spring Data MongoDB Reactive và Spring WebFlux
- Lombok: xem thêm Giới thiệu về Project Lombok
- DevTools: xem thêm Giới thiệu về công cụ DevTools trong Spring Boot
Kết quả:
Tiếp theo, mình sẽ chỉnh sửa lại project này một xí để nó sử dụng parent project của project questions-management.
Trong tập tin pom.xml của project này, mình sẽ xoá phần <parent> và <properties> hiện tại để khai báo sử dụng parent project của project questions-management như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>core-option-service</artifactId> <name>core-option-service</name> <description>Core Option Service for Questions Management</description> <parent> <groupId>com.huongdanjava</groupId> <artifactId>questions-management</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </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> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
Rồi khai báo project core-option-service là một module của project questions-management như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.huongdanjava</groupId> <artifactId>questions-management</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>Questions Management System</name> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <modules> <module>core/core-category-service</module> <module>core/core-question-service</module> <module>core/core-option-service</module> </modules> </project> |