- vừa được xem lúc

Bài học số 1 - Làm Quen Với Quarkus Project

0 0 27

Người đăng: Hoang Minh

Theo Viblo Asia

Giới thiệu

Chào các bạn tới với series về Quarkus, ở trong series này chúng ta sẽ tìm hiểu cơ bản về Quarkus thông qua các ví dụ.

Ở bài đầu tiên thì chúng ta sẽ xem qua Quarkus là gì và cách tạo một ứng dụng Quarkus đơn giản.

Do những mặt hạn chế của JVM khi chạy trong các container (tốn bộ nhớ + thời gian khởi động chậm). Quarkus đã ra đời - Một framework được mô tả là Supersonic Subatomic giúp Java application chạy tương thích trong các container trên môi trường cloud.

Quarkus framework là một giải pháp thay thế giúp đưa Java gần hơn với các môi trường đám mây.

1. Cách tạo một Quarkus project:

Cách đơn giản nhất để tạo một Quarkus project là sử dụng web-based tool do chính Quarkus cung cấp Nhấn vào đây

Tìm thư viện quarkus-resteasy-reactive image.png

Sau khi chọn thư viện xong, bạn có thể review lại các extension đã thêm vào project. image.png

Cuối cùng là Generate your application để download source code về máy

Dùng IDE để mở project, ở đây mình sử dụng Inteliji IDEA image.png

Bên trong thư mục ./getting-started bao gồm:

  • Một file pom.xml (khi sử dụng mvn) dùng để quản lý các extension
  • Một class org.acme.GreetingResource expose ở đường dẫn /hello
  • Một file Dockerfile dùng để chạy ứng dụng Quarkus bằng cả 2 mode là native và jvm trong thư mục src/main/docker
  • Một file application.properties dùng để cấu hình cho ứng dụng khi chạy (VD: cấu hình kết nối đến cơ sở dữ liệu)

Thêm vào file src/main/java/org/acme/GreetingResource.java những dòng sau:

package org.acme; import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; @Path("/hello")
public class GreetingResource { @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "Hello from RESTEasy Reactive"; }
}

Đây là một REST endpoint đơn giản, nó trả về "Hello from RESTEasy Reactive" cho request ở "localhost:8080/hello".

Chạy ứng dụng bằng câu lệnh sau: mvnw quarkus:dev image.png

image.png

2. Sử Dụng Injection:

Dependency injection trong Quarkus dựa trên ArC (CDI-based dependency injection được thiết kế riêng cho kiến trúc Quarkus)

ArC xuất hiện dưới dạng extension quarkus-resteasy-react, mà ta đã thêm vào lúc đầu.

Chỉnh sửa ứng dụng và thêm vào cho nó một companion bean như sau: image.png

Tạo file src/main/java/org/acme/GreetingService.java file với nội dung như sau:

package org.acme; import javax.enterprise.context.ApplicationScoped; @ApplicationScoped
public class GreetingService { public String greeting(String name) { return "hello " + name; } }

Chỉnh sửa class GreetingResource để inject class GreetingService và tạo một endpoint mới:

package org.acme; import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; @Path("/hello")
public class GreetingResource { @Inject GreetingService service; @GET @Produces(MediaType.TEXT_PLAIN) @Path("/greeting/{name}") public String greeting(String name) { return service.greeting(name); } @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "hello"; }
}

Chạy lại ứng dụng image.png

Kết luận

Vậy là ta đã tìm hiểu xong cơ bản về Quarkus 😁. Quarkus là một framework rất hữu dụng trong việc viết nên một ứng dụng Java với performance cao và cú pháp đơn giản hơn so với Spring framework, và hỗ trợ cho ta rất nhiều thư viện và công cụ hướng tới cloud native & reactive programming.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 278

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 257

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 37

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 180

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 55

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124