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

Tạo dự án Spring Boot đầu tiên

0 0 78

Người đăng: Tống Hoàng Vũ

Theo Viblo Asia

1. Chuẩn bị

Đối với Spring Boot thì các bạn có thể chọn một trong hai IDE là Eclipse (miễn phí) và IntelliJ IDEA Ultimate (bản Community không có hỗ trợ Spring). Tải xuống tại đây:

Mình khuyến khích các bạn dùng IntelliJ, vì code rất sướng và ít lỗi vặt như Eclipse. Với IntelliJ thì có plugin sẵn rồi, không cần cài nhiều. Còn Eclipse bạn cần cài thêm STS (Spring tool suite). Có thể download JAR tại đây, hoặc tìm trong Marketplace của Eclipse.

Trong phần sau, mình sẽ sử dụng IntelliJ để demo nhé.

2. Spring initializr

Spring Boot có một công cụ giúp chúng ta nhanh chóng khởi tạo project gọi là Spring Initializr. Spring Initializr có thể truy cập trên web tại http://start.spring.io/, hoặc với IntelliJ thì có tích hợp luôn vào khi tạo project luôn.

2.1. Khai báo thông tin project

Như hình trên, ở ngăn bên trái là nơi chúng ta khai báo một số thông tin project như:

  • Loại project: là chọn loại package manager nào, Maven hoặc Gradle.
  • Language: chọn ngôn ngữ code, ở đây mình chọn Java
  • Phiên bản Spring Boot: Các version có SNAPSHOT là bản chưa ổn định, không nên chọn
  • Loại file build ra: với Spring Boot thì nên chọn JAR để đỡ cấu hình Tomcat server
  • Phiên bản Java: chọn java 11 để ổn định

Ngoài ra cũng cần khai báo thêm các metadata như tên project, tên package, artifact,...

2.2. Chọn dependency

Ngăn bên phải là chọn các dependency, có thể hiểu là các thư viện phụ trợ. Để code được web service bạn cần có Spring web. Các thư viện khác có ý nghĩa như sau:

  • Lombok: nên chọn, nó giúp code Java ngắn hơn, nhưng cần cài thêm plugin Lombok vào IDE nữa
  • Thymeleaf: chưa cần, Thymeleaf sẽ giúp pass data vào view của mô hình MVC, trả về trang HTML có data cho client
  • Spring configuration processor, Spring devtools là các tool hỗ trợ thêm khi code thôi

Trong phần này, mình khuyến khích các bạn chọn gồm: Spring Web, Lombok, Thymeleaf.

2.3. Hoàn tất

Sau khi xong, các bạn nhấn nút Generate là xong. Một file zip chứa source ban đầu sẽ được tải về, chỉ cần giải nén và bắt đầu code.

Cấu trúc project được khởi tạo sẵn như sau.

3. Code chương trình đơn giản

Phần này mình sẽ hướng dẫn tạo một web trả về HTML đơn giản khi người dùng truy cập.

B1. Tạo Controller đơn giản

Controller là thành phần đầu tiên để bắt URL người dùng truy cập. Ví dụ bạn vào trang chủ của web, thì controller method có mapping tới URL / sẽ được gọi.

Các bạn chuột phải vào entry bên trái có tên là com.abc.xyz, chọn New > Java class. Đặt tên là HomeController và gõ code sau vào.

package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; @Controller // Chỉ định HomeController là Controller
public class HomeController { // Khi user truy cập vào endpoint / thì homepage() được gọi @GetMapping("/") public String homepage() { return "index"; // Trả về trang index.html } // Có thể mapping thêm các endpoint khác nữa...
}

Web này khá đơn giản, chỉ có 1 endpoint là / (trang chủ). Spring Boot sử dụng các @Annotation để chỉ định ý nghĩa một số thành phần trong code, theo mình nó khá là hay và giúp code dễ hiểu hơn.

B2. Tạo trang HTML để trả về

Như trên chúng ta có HomeController, khi truy cập vào / sẽ trả về trang index.html. Các bạn chuột phải vào thư mục resources/template, chọn New > HTML file và gõ tên index.html vào.

Nếu bạn chưa biết HTML thì hãy gõ theo như sau, còn biết rồi thì có thể tự do custom tùy ý.

<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <title>Spring Boot web</title>
</head>
<body> Hello World!
</body>
</html>

Bước này các bạn cần chú ý phải cài thư viện Thymeleaf nhé nếu không nó không nhận đâu.

B3. Chạy và xem kết quả

Nhấn nút màu xanh ở trên cùng bên phải IDE để chạy chương trình. Việc khởi động tùy vào kích thước dự án, nếu project trống thì sẽ khởi động rất nhanh.

Do bạn chưa cấu hình port cho web, nên mặc định Spring Boot sẽ lấy port 8080 để chạy, hoặc port trống khác trên máy bạn. Có thể xem trong console của IDE là web đang chạy port nào (dòng Tomcat started on port(s): 8080)

Sau đó mở trình duyệt và truy cập localhost:8080 hoặc thay bằng port của bạn. Kết quả là đây.

4. Chạy chương trình

4.1. Chạy trong IDE

Phần này khỏi nói đi ha, quá cơ bản rồi. Chỉ cần nhấn một trong hai nút màu xanh ở trên bên phải là được ?

4.2. Build thành file JAR

Để build thành file JAR, cần chạy các task tương ứng với package manager đã chọn. Nếu project dùng Maven cần chạy task jar, còn Gradle thì là bootJar.

Sau khi đợi một lúc thì Maven hoặc Gradle sẽ build ra thư mục chứa các file class và JAR:

  • Maven là thư mục target, ngay bên trong có file JAR luôn
  • Gradle là thư mục build, file JAR nằm bên trong thư mục con libs

4.3. Chạy file JAR

Sau khi đã có file JAR, các bạn dùng command sau để chạy. Quá trình chạy diễn ra tương tự khi Run trong IDE.

java -jar ABC.jar

File JAR này có thể chạy ở mọi nơi chạy được java, trên máy bạn hoặc server đều chạy giống nhau. Lý do bởi vì bên trong file JAR đã được nhúng sẵn server Tomcat luôn rồi.

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 302

- 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 277

- 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 50

- 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 194

- 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 71

- 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 139