Tại sao bootstrapping hoạt động

Hướng dẫn này cung cấp một ví dụ mẫu về cách Spring Boot giúp bạn tăng tốc phát triển ứng dụng. Khi bạn đọc thêm các hướng dẫn Bắt đầu với Spring, bạn sẽ thấy nhiều trường hợp sử dụng hơn cho Spring Boot. Hướng dẫn này nhằm cung cấp cho bạn hương vị nhanh của Spring Boot. Nếu bạn muốn tạo dự án dựa trên Khởi động mùa xuân của riêng mình, hãy truy cập Spring Initializr, điền chi tiết dự án của bạn, chọn tùy chọn và tải xuống dự án được đóng gói dưới dạng tệp zip

Những gì bạn sẽ xây dựng

Bạn sẽ xây dựng một ứng dụng web đơn giản với Spring Boot và thêm một số dịch vụ hữu ích vào đó

Những gì bạn cần

  • Khoảng 15 phút

  • Trình soạn thảo văn bản hoặc IDE yêu thích

  • JDK 1. 8 hoặc muộn hơn

  • Lớp 4+ hoặc Maven 3. 2+

  • Bạn cũng có thể nhập thẳng mã vào IDE của mình

    • Bộ công cụ mùa xuân (STS)

    • Ý TƯỞNG IntelliJ

    • VSCode

Làm thế nào để hoàn thành hướng dẫn này

Giống như hầu hết các hướng dẫn Bắt đầu với Spring, bạn có thể bắt đầu từ đầu và hoàn thành từng bước hoặc bạn có thể bỏ qua các bước thiết lập cơ bản đã quen thuộc với bạn. Dù bằng cách nào, bạn sẽ kết thúc với mã làm việc

Để bắt đầu lại từ đầu, hãy chuyển sang phần Bắt đầu với Spring Initializr

Để bỏ qua những điều cơ bản, hãy làm như sau

  • Tải xuống và giải nén kho lưu trữ nguồn cho hướng dẫn này hoặc sao chép nó bằng Git.

    ./gradlew bootRun
    0

  • cd into

    ./gradlew bootRun
    1

  • Tiếp tục tạo một ứng dụng web đơn giản

Khi bạn hoàn thành, bạn có thể kiểm tra kết quả của mình với mã trong

./gradlew bootRun
2

Tìm hiểu những gì bạn có thể làm với Spring Boot

Spring Boot cung cấp một cách nhanh chóng để xây dựng các ứng dụng. Nó xem xét đường dẫn lớp của bạn và các bean bạn đã định cấu hình, đưa ra các giả định hợp lý về những gì bạn đang thiếu và thêm các mục đó. Với Spring Boot, bạn có thể tập trung nhiều hơn vào các tính năng kinh doanh và ít hơn vào cơ sở hạ tầng

Các ví dụ sau đây cho thấy Spring Boot có thể làm gì cho bạn

  • Spring MVC có trên đường dẫn lớp không? . Một ứng dụng Spring MVC cũng cần một bộ chứa servlet, vì vậy Spring Boot sẽ tự động cấu hình nhúng Tomcat

  • Cầu tàu có nằm trên đường dẫn lớp không? . Spring Boot xử lý việc đó cho bạn

  • Là Thymeleaf trên classpath? . Spring Boot thêm chúng cho bạn

Đây chỉ là một vài ví dụ về cấu hình tự động mà Spring Boot cung cấp. Đồng thời, Spring Boot không cản trở bạn. Ví dụ: nếu Thymeleaf nằm trên đường dẫn của bạn, Spring Boot sẽ tự động thêm một

./gradlew bootRun
3 vào ngữ cảnh ứng dụng của bạn. Nhưng nếu bạn xác định
./gradlew bootRun
3 của riêng mình bằng các cài đặt của riêng bạn, Spring Boot sẽ không thêm một. Điều này giúp bạn kiểm soát mà không cần nỗ lực nhiều

Spring Boot không tạo mã hoặc chỉnh sửa tệp của bạn. Thay vào đó, khi bạn khởi động ứng dụng của mình, Spring Boot sẽ tự động kết nối các bean và cài đặt và áp dụng chúng vào ngữ cảnh ứng dụng của bạn

Bắt đầu với Khởi tạo mùa xuân

Bạn có thể sử dụng dự án được khởi tạo trước này và nhấp vào Tạo để tải xuống tệp ZIP. Dự án này được cấu hình để phù hợp với các ví dụ trong hướng dẫn này

Để khởi tạo dự án theo cách thủ công

  1. Điều hướng đến https. //bắt đầu. mùa xuân. io. Dịch vụ này thu thập tất cả các phụ thuộc bạn cần cho một ứng dụng và thực hiện hầu hết các thiết lập cho bạn

  2. Chọn Gradle hoặc Maven và ngôn ngữ bạn muốn sử dụng. Hướng dẫn này giả định rằng bạn đã chọn Java

  3. Nhấp vào Phụ thuộc và chọn Web mùa xuân

  4. Nhấp vào Tạo

  5. Download the resulting ZIP file, which is an archive of a web application that is configured with your choices

Nếu IDE của bạn có tích hợp Spring Initializr, bạn có thể hoàn tất quy trình này từ IDE của mình

Bạn cũng có thể rẽ nhánh dự án từ Github và mở nó trong IDE hoặc trình chỉnh sửa khác của bạn

Tạo một ứng dụng web đơn giản

Bây giờ bạn có thể tạo bộ điều khiển web cho một ứng dụng web đơn giản, như danh sách sau đây (từ

./gradlew bootRun
5) cho thấy

package com.example.springboot;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

	@GetMapping("/")
	public String index() {
		return "Greetings from Spring Boot!";
	}

}

Lớp này được gắn cờ là

./gradlew bootRun
6, nghĩa là nó đã sẵn sàng để Spring MVC sử dụng để xử lý các yêu cầu web.
./gradlew bootRun
7 ánh xạ
./gradlew bootRun
8 sang phương pháp
./gradlew bootRun
9. Khi được gọi từ trình duyệt hoặc bằng cách sử dụng curl trên dòng lệnh, phương thức này sẽ trả về văn bản thuần túy. Đó là bởi vì
./gradlew bootRun
6 kết hợp
./gradlew bootRun
21 và
./gradlew bootRun
22, hai chú thích dẫn đến yêu cầu web trả về dữ liệu thay vì chế độ xem

Tạo một lớp Ứng dụng

Spring Initializr tạo một lớp ứng dụng đơn giản cho bạn. Tuy nhiên, trong trường hợp này, nó quá đơn giản. Bạn cần sửa đổi lớp ứng dụng để phù hợp với danh sách sau (từ

./gradlew bootRun
23)

./gradlew bootRun
5

./gradlew bootRun
24 là một chú thích tiện lợi có thêm tất cả những điều sau đây

  • ./gradlew bootRun
    25. Gắn thẻ lớp làm nguồn định nghĩa bean cho ngữ cảnh ứng dụng

  • ./gradlew bootRun
    26. Yêu cầu Spring Boot bắt đầu thêm các bean dựa trên cài đặt đường dẫn lớp, các bean khác và các cài đặt thuộc tính khác nhau. Ví dụ: nếu
    ./gradlew bootRun
    27 nằm trên đường dẫn lớp, thì chú thích này sẽ đánh dấu ứng dụng là ứng dụng web và kích hoạt các hành vi chính, chẳng hạn như thiết lập một
    ./gradlew bootRun
    28

  • ./gradlew bootRun
    29. Yêu cầu Spring tìm kiếm các thành phần, cấu hình và dịch vụ khác trong gói
    ./gradlew bootRun
    20, để nó tìm bộ điều khiển

Phương thức

./gradlew bootRun
21 sử dụng phương thức
./gradlew bootRun
22 của Spring Boot để khởi chạy một ứng dụng. Bạn có nhận thấy rằng không có một dòng XML nào không? . Ứng dụng web này là Java thuần 100% và bạn không phải đối phó với việc định cấu hình bất kỳ hệ thống ống nước hoặc cơ sở hạ tầng nào

Ngoài ra còn có một phương thức

./gradlew bootRun
24 được đánh dấu là một
./gradlew bootRun
25 và phương thức này sẽ chạy khi khởi động. Nó truy xuất tất cả các bean được tạo bởi ứng dụng của bạn hoặc được Spring Boot tự động thêm vào. Nó sắp xếp chúng và in chúng ra

Chạy ứng dụng

Để chạy ứng dụng, hãy chạy lệnh sau trong cửa sổ đầu cuối (trong thư mục

./gradlew bootRun
26)

./gradlew bootRun

Nếu bạn sử dụng Maven, hãy chạy lệnh sau trong cửa sổ đầu cuối (trong thư mục

./gradlew bootRun
26)

./gradlew bootRun
2

Bạn sẽ thấy đầu ra tương tự như sau

./gradlew bootRun
2

Bạn có thể thấy rõ hạt đậu

./gradlew bootRun
28. Ngoài ra còn có một
./gradlew bootRun
29

Bây giờ hãy chạy dịch vụ với curl (trong một cửa sổ đầu cuối riêng biệt), bằng cách chạy lệnh sau (hiển thị cùng với đầu ra của nó)

./gradlew bootRun
5

Thêm bài kiểm tra đơn vị

Bạn sẽ muốn thêm một thử nghiệm cho điểm cuối mà bạn đã thêm và Spring Test cung cấp một số máy móc cho điều đó

Nếu bạn sử dụng Gradle, hãy thêm phần phụ thuộc sau vào tệp

./gradlew bootRun
50 của bạn

./gradlew bootRun
7

Nếu bạn sử dụng Maven, hãy thêm phần sau vào tệp

./gradlew bootRun
51 của bạn

./gradlew bootRun
9

Bây giờ hãy viết một bài kiểm tra đơn vị đơn giản để mô phỏng yêu cầu và phản hồi của servlet thông qua điểm cuối của bạn, như danh sách sau (từ

./gradlew bootRun
52) cho thấy

./gradlew bootRun
1

./gradlew bootRun
53 đến từ Spring Test và cho phép bạn, thông qua một tập hợp các lớp trình tạo thuận tiện, gửi các yêu cầu HTTP đến
./gradlew bootRun
28 và đưa ra các xác nhận về kết quả. Lưu ý việc sử dụng
./gradlew bootRun
55 và
./gradlew bootRun
56 để tiêm một phiên bản
./gradlew bootRun
53. Sau khi sử dụng
./gradlew bootRun
56, chúng tôi đang yêu cầu tạo toàn bộ bối cảnh ứng dụng. Một cách khác là yêu cầu Spring Boot chỉ tạo các lớp web của ngữ cảnh bằng cách sử dụng
./gradlew bootRun
59. Trong cả hai trường hợp, Spring Boot sẽ tự động cố gắng xác định vị trí lớp ứng dụng chính của ứng dụng của bạn, nhưng bạn có thể ghi đè hoặc thu hẹp nó nếu bạn muốn xây dựng một thứ gì đó khác biệt.

Ngoài việc mô phỏng chu kỳ yêu cầu HTTP, bạn cũng có thể sử dụng Spring Boot để viết một bài kiểm tra tích hợp toàn ngăn xếp đơn giản. Ví dụ: thay vì (hoặc cũng như) bài kiểm tra thử được hiển thị trước đó, chúng tôi có thể tạo bài kiểm tra sau (từ

./gradlew bootRun
70)

./gradlew bootRun
0

Máy chủ nhúng bắt đầu trên một cổng ngẫu nhiên vì

./gradlew bootRun
71 và cổng thực tế được định cấu hình tự động trong URL cơ sở cho
./gradlew bootRun
72

Thêm dịch vụ cấp sản xuất

Nếu bạn đang xây dựng một trang web cho doanh nghiệp của mình, có lẽ bạn cần thêm một số dịch vụ quản lý. Spring Boot cung cấp một số dịch vụ như vậy (chẳng hạn như sức khỏe, kiểm toán, đậu, v.v.) với mô-đun bộ truyền động của nó

Nếu bạn sử dụng Gradle, hãy thêm phần phụ thuộc sau vào tệp

./gradlew bootRun
50 của bạn

./gradlew bootRun
50

If you use Maven, add the following dependency to your

./gradlew bootRun
51 file

./gradlew bootRun
51

Sau đó khởi động lại ứng dụng. Nếu bạn sử dụng Gradle, hãy chạy lệnh sau trong cửa sổ đầu cuối (trong thư mục

./gradlew bootRun
26)

./gradlew bootRun

Nếu bạn sử dụng Maven, hãy chạy lệnh sau trong cửa sổ đầu cuối (trong thư mục

./gradlew bootRun
26)

./gradlew bootRun
2

Bạn sẽ thấy rằng một tập hợp các điểm cuối RESTful mới đã được thêm vào ứng dụng. Đây là các dịch vụ quản lý do Spring Boot cung cấp. Danh sách sau đây cho thấy đầu ra điển hình

./gradlew bootRun
54

Thiết bị truyền động hiển thị như sau

  • thiết bị truyền động/sức khỏe

  • bộ truyền động

Ngoài ra còn có một điểm cuối

./gradlew bootRun
77, nhưng theo mặc định, nó chỉ hiển thị thông qua JMX. Để kích hoạt nó dưới dạng điểm cuối HTTP, hãy thêm
./gradlew bootRun
78 vào tệp
./gradlew bootRun
79 của bạn và hiển thị nó bằng
./gradlew bootRun
90. Tuy nhiên, có lẽ bạn không nên kích hoạt điểm cuối tắt máy cho ứng dụng có sẵn công khai

Bạn có thể kiểm tra tình trạng của ứng dụng bằng cách chạy lệnh sau

./gradlew bootRun
55

Bạn cũng có thể thử gọi tắt máy thông qua cuộn tròn, để xem điều gì xảy ra khi bạn chưa thêm dòng cần thiết (hiển thị trong ghi chú trước) vào

./gradlew bootRun
79

./gradlew bootRun
56

Do chúng tôi không kích hoạt nên điểm cuối được yêu cầu không khả dụng (vì điểm cuối không tồn tại)

Để biết thêm chi tiết về từng điểm cuối REST này và cách bạn có thể điều chỉnh cài đặt của chúng bằng tệp

./gradlew bootRun
79 (trong
./gradlew bootRun
93), hãy xem tài liệu về điểm cuối

Xem phần khởi động của Spring Boot

Bạn đã thấy một số "khởi động" của Spring Boot. Bạn có thể thấy tất cả chúng ở đây trong mã nguồn

Hỗ trợ JAR và Hỗ trợ Groovy

Ví dụ cuối cùng cho thấy cách Spring Boot cho phép bạn kết nối các bean mà bạn có thể không biết là mình cần. Nó cũng chỉ ra cách bật các dịch vụ quản lý tiện lợi

Tuy nhiên Spring Boot còn làm được nhiều hơn thế. Nó không chỉ hỗ trợ triển khai tệp WAR truyền thống mà còn cho phép bạn kết hợp các tệp JAR có thể thực thi lại với nhau, nhờ mô-đun trình tải của Spring Boot. Các hướng dẫn khác nhau thể hiện sự hỗ trợ kép này thông qua

./gradlew bootRun
94 và
./gradlew bootRun
95

Trên hết, Spring Boot cũng có hỗ trợ Groovy, cho phép bạn xây dựng các ứng dụng web Spring MVC chỉ bằng một tệp duy nhất

Tạo một tệp mới có tên là

./gradlew bootRun
96 và đặt đoạn mã sau vào đó

./gradlew bootRun
57

It does not matter where the file is. Bạn thậm chí có thể phù hợp với một ứng dụng nhỏ bên trong một tweet

Tiếp theo, cài đặt CLI của Spring Boot

Run the Groovy application by running the following command

./gradlew bootRun
58

Tắt ứng dụng trước đó để tránh xung đột cổng

Từ một cửa sổ đầu cuối khác, hãy chạy lệnh curl sau (hiển thị cùng với đầu ra của nó)

./gradlew bootRun
59

Spring Boot thực hiện điều này bằng cách tự động thêm các chú thích chính vào mã của bạn và sử dụng Groovy Grape để kéo xuống các thư viện cần thiết để chạy ứng dụng

Bản tóm tắt

Xin chúc mừng. Bạn đã xây dựng một ứng dụng web đơn giản với Spring Boot và tìm hiểu cách nó có thể tăng tốc độ phát triển của bạn. Bạn cũng đã bật một số dịch vụ sản xuất tiện dụng. Đây chỉ là một ví dụ nhỏ về những gì Spring Boot có thể làm. Xem tài liệu trực tuyến của Spring Boot để biết thêm thông tin

Xem thêm

Các hướng dẫn sau đây cũng có thể hữu ích

  • Bảo mật ứng dụng web

  • Cung cấp nội dung web với Spring MVC

Bạn muốn viết một hướng dẫn mới hoặc đóng góp cho một hướng dẫn hiện có?

Tất cả các hướng dẫn được phát hành với giấy phép ASLv2 cho mã và giấy phép Commons sáng tạo Attribution, NoDerivatives cho văn bản