Skip to content

1.3.6 Hãy cùng ôn lại

Hãy nhớ lại cách bạn đã đến được điểm này. Tóm lại, bạn đã thực hiện các bước sau để xây dựng ứng dụng Spring Taco Cloud:

  • Bạn đã tạo cấu trúc dự án ban đầu bằng cách sử dụng Spring Initializr.
  • Bạn đã viết một lớp controller để xử lý yêu cầu trang chủ.
  • Bạn đã định nghĩa một mẫu giao diện (template) để hiển thị trang chủ.
  • Bạn đã viết một lớp kiểm thử đơn giản để chứng minh công việc của mình.

Nghe có vẻ khá đơn giản, đúng không? Ngoại trừ bước đầu tiên để khởi tạo dự án, mỗi hành động bạn thực hiện đều tập trung vào việc đạt được mục tiêu tạo ra một trang chủ.

Thực tế, gần như mọi dòng mã bạn viết đều hướng đến mục tiêu đó. Không tính các lệnh import trong Java, tôi chỉ đếm được hai dòng mã trong lớp controller của bạn và không có dòng nào trong mẫu giao diện là đặc thù của Spring. Và mặc dù phần lớn lớp kiểm thử sử dụng hỗ trợ kiểm thử của Spring, thì nó vẫn có vẻ ít xâm phạm hơn trong ngữ cảnh của một bài kiểm thử.

Đó là một lợi ích quan trọng khi phát triển với Spring. Bạn có thể tập trung vào đoạn mã đáp ứng yêu cầu của ứng dụng, thay vì phải làm hài lòng các yêu cầu của framework. Mặc dù chắc chắn đôi lúc bạn vẫn cần viết một vài đoạn mã đặc trưng cho framework, nhưng chúng thường chỉ chiếm một phần rất nhỏ trong toàn bộ mã nguồn của bạn. Như tôi đã nói trước đó, Spring (với Spring Boot) có thể được coi là framework không-framework.

Làm sao điều này có thể hoạt động được? Spring đang làm gì đằng sau hậu trường để đảm bảo rằng nhu cầu của ứng dụng bạn được đáp ứng? Để hiểu được những gì Spring đang làm, hãy bắt đầu bằng cách xem xét tệp cấu hình build.

Trong tệp pom.xml, bạn đã khai báo một dependency đến các starter Web và Thymeleaf. Hai dependency này kéo theo một loạt các dependency khác, bao gồm:

  • Framework MVC của Spring
  • Embedded Tomcat
  • Thymeleaf và dialect layout của Thymeleaf

Nó cũng kéo theo thư viện autoconfiguration của Spring Boot. Khi ứng dụng khởi động, Spring Boot autoconfiguration sẽ phát hiện ra các thư viện đó và tự động thực hiện các nhiệm vụ sau:

  • Cấu hình các bean trong Spring application context để kích hoạt Spring MVC
  • Cấu hình embedded Tomcat server trong Spring application context
  • Cấu hình Thymeleaf view resolver để render các view Spring MVC bằng các template Thymeleaf

Tóm lại, autoconfiguration thực hiện tất cả những công việc nặng nhọc, để bạn có thể tập trung vào việc viết mã hiện thực chức năng của ứng dụng. Nếu bạn hỏi tôi, thì đó là một sự sắp xếp cực kỳ tuyệt vời!

Hành trình Spring của bạn chỉ mới bắt đầu. Ứng dụng Taco Cloud mới chỉ chạm đến một phần rất nhỏ trong những gì Spring có thể cung cấp. Trước khi bạn bước tiếp, hãy cùng khảo sát hệ sinh thái Spring và xem những cột mốc nào bạn sẽ gặp trên hành trình của mình.

Released under the MIT License.