Học Microservice với Spring Boot - ToiHieuRoi.com

Học Microservice với Spring Boot – [Phần 2]

Posted by

Dưới đây là link của loạt bài “Học Microservice với Spring Boot“:

Phần này là phần 2 của loạt bài trên. Chúng ta sẽ tập trung vào việc tạo Forex Microservice trong phần này.

Mục tiêu

Mục tiêu chính của chúng ta trong phần này là biết được câu trả lời cho 3 câu hỏi dưới đây:

  • Làm thế nào để tạo một microservice với Spring Boot?
  • Làm thế nào để tạo JPA Entity và Endpoint cho microservice?
  • Làm thế nào để Spring MVC, Spring Boot, JPA, Hibernate và H2 làm việc với nhau?

Tổng quan

Forex Service (FS) là một Service Provider. Nó cung cấp giá trị quy đổi tiền tệ cho các loại tiền tệ khác nhau. Hãy giả sử nó trao đổi với Forex Exchange và cung cấp các giá trị quy đổi hiện tại giữa các loại tiền tệ.

Một ví dụ về request và response:

Request

Response

Request trên là giá trị quy đổi từ EUR thành INR. Trong response thì conversionMultipe là 75.

Project Structure

Dưới đây là structure của project mà chúng ta sẽ tạo:

Học Microservice với Spring Boot - ToiHieuRoi.com

Những thông tin mà chúng ta cần chú ý:

  • ExchangeValue.java  – Exchange Value Entity
  • ExchangeValueRepository.java  – ExchangeValue JPA Repository. Class này được kế thừa từ Spring Data JpaRepository.
  • ForexController.java  – Spring Rest Controller cung cấp các endpoints để bên ngoài có thể giao tiếp với service của chúng ta.
  • data.sql  – Khởi tạo dữ liệu cho bảng exchange_value.

Tools

  • JDK 1.8+
  • Spring Tool Suite – STS (latest version)
  • Maven 3.0+

Complete Maven Project

Mình có đưa source code lên Github. Bạn nào cần thì có thể lấy về tham khảo nhé. Link: https://github.com/ndtai/learning-microservice

Tạo project sử dụng STS

Chọn File -> New -> Spring Starter Project

Các bạn nhập các trường: Group, Artifact, Package như hình:

Học Microservice với Spring Boot - ToiHieuRoi.com

Sau đó chọn các module: Web, JPA, H2, Actuator, DevTools như hình dưới đây:

Học Microservice với Spring Boot - ToiHieuRoi.com

Tạo Exchange Value Entity

Chú ý:

  • @Entity: Annotation này sẽ xác định class nào là một Entity.
  • @Id: Xác định field nào là Primary key của Entity.

Tạo Exchange Value JPA Repository

  • public interface ExchangeValueRepository extends JpaRepository<ExchangeValue, Long>  – Chúng ta sẽ tạo một Repository tên là ExchangeValueRepository  kế thừa JpaRepository và phải chỉ ra Repository này là Repository của Entity nào (ExchangeValue) và chỉ ra kiểu của Primary key trong Entity đó là gì (Long).
  • ExchangeValue findByFromAndTo(String from, String to);  – Chúng ta muốn tìm giá trị quy đổi của một loại tiền tệ sang một loại tiền tệ khác nên chúng ta sẽ định nghĩa một query method để thực hiện việc này. Tham khảo thêm: JPA named queries

Tạo Controller – ForexController

Chú ý:

  • ExchangeValue exchangeValue = repository.findByFromAndTo(from, to)  – Lấy ra giá trị quy đổi của hai loại tiền tệ từ database ra.
  • exchangeValue.setPort(Integer.parseInt(environment.getProperty("local.server.port"))) – Lấy port của môi trường mà instance hiện tại đang hoạt động và set vào trong exchangeValue entity.

Cấu hình Application

Cấu hình Application ta sẽ thêm vào trong file application.properties

Thêm data test vào trong data.sql

Các bạn thêm tập query trên vào trong file data.sql  nhé. Data sẽ tự động được insert vào H2 database khi khởi động ứng dụng.

Test Forex Microservice

Chúng ta chỉ cần start ứng dụng và dán link sau vào trình duyệt:

Kết quả như thế này là Okay:

Học Microservice với Spring Boot - ToiHieuRoi.com

Nguồn: http://www.springboottutorial.com/creating-microservices-with-spring-boot-part-2-forex-microservice

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *