Mùa Xuân – Mùa đẹp nhất (phần 1)
“Mọc giữa dòng sông xanh
Một bông hoa tím biếc
Ơi con chim chiền chiện
Hót chi mà vang trời
Từng giọt long lanh rơi
Tôi đưa tay tôi hứng.
Mùa xuân người cầm súng
Lộc giắt đầy quanh lưng
Mùa xuân người ra đồng
Lộc trải dài nương mạ
Tất cả như hối hả
Tất cả như xôn xao.”
Trích Mùa Xuân nho nhỏ – Thanh Hải
Bạn thích mùa nào nhất trong năm ?
Với mình, đó chính mùa Xuân. Ngày còn bé, chắc hẳn ai cũng đã từng vô cùng háo hức khi tết đến xuân về, không những được nghỉ học và còn được nhận lì xì từ ông bà, bố mẹ. Lớn lên, tuy không còn được nhận lì xì (mà còn phải đi lì xì cho bọn trẻ con T_T), nhưng tết vẫn là dịp được nghỉ dài nhất trong năm với những người đi làm như chúng ta. Ngoài ra, cảnh vật mùa Xuân cũng vô cùng đẹp khi được khoác lên mình những chiếc áo mới. Đầu xuân mà được vi vu trên cung đường đèo Mã Pí Lèng và ngắm hoa đào nở rực rỡ ở Hà Giang, hay chìm trong sắc mai vàng giữa chợ nổi Cái Răng ở Cần Thơ thì đúng là hết bài luôn rồi :))).
Ơ nhưng mà, mình đang ngồi trong phòng điều hoà để gõ những dòng này và bây giờ đang là tháng 7, có gì đó không đúng thì phải ??
Hóa ra là xuân cũng có xuân “this” xuân “that”. Và hôm nay, mình xin được giới thiệu xuân “that” với mọi người. Đó chính là Xuân (Spring) framework
1. Spring là gì ?
- Spring (hay còn được biết tới với tên gọi Spring MVC) là một framework dùng để phát triển các ứng dụng Web bằng Java
(Spring có thể làm được nhiều việc khác nhau, nhưng phổ biến nhất vẫn là làm web apps)
- Spring nổi bật với việc tổ chức code theo pattern MVC (Model – view – controller) và ứng dụng nguyên lý Inversion of control (mình sẽ minh họa cụ thể hơn trong phần 2 của blog này)
2. Cách cài đặt Spring
- Để cài đặt Spring, hãy truy cập vào đường link sau: https://spring.io/tools
- Với một người lười như mình, thì mình sẽ chọn ngay option đầu tiên, vì bạn chỉ cần tải về, giải nén ra là chạy được luôn :))
- Sau khi đã tải về và giải nén, khi mở lên lần đầu, ta sẽ có giao diện như sau:
- Trong phạm vi của phần 1 này, ta chọn “Create new Spring Starter Project”
- Ở phần này, ta để các setting ở mặc định (ở đây mình dùng Maven làm build tool, ngoài ra, Spring project cũng có thể sử dụng Gradle)
- Lưu ý: Ở mục tiếp theo, cần chọn thêm dependency “Spring Web”
- Chọn “Finish”, ngồi đợi một lát và đây là kết quả
3. Cấu trúc của 1 project Spring
Một project Spring sẽ bao gồm các thành phần chính sau
- src/main/java: Đây là phần source code của project, có thể sẽ được chia thành nhiều package nhỏ hơn, tùy theo từng project
- src/main/resources: Đúng như tên gọi của nó, đây là nơi lưu các tài nguyên bên ngoài mà project sử dụng tới (hình ảnh, video, template giao diện, etc)
- src/test/java: Các unit test của project sẽ được đặt ở đây
- File pom.xml: File này sẽ quản lý toàn bộ các dependency của project, dưới dạng xml
4. Tạo 1 API đơn giản với Spring
Sau đây, chúng ta sẽ cùng tạo 1 api đơn giản bằng Spring, với URL có dạng:
localhost:8080/greeting?language=English
Và response trả ra là:
{ "id": 1, "content": "Hello" }
Với content là 1 câu chào theo ngôn ngữ mà chúng ta truyền vào trong request param
a) Tạo model
package com.example.demo; public class Greeting { private final long id; private final String content; public Greeting(long id, String content) { this.id = id; this.content = content; } public long getId() { return id; } public String getContent() { return content; } }
b) Tạo Controller
package com.example.demo; import java.util.Random; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class GreetingController { private static final String HELLO_EN = "Hello"; private static final String HELLO_VN = "Xin chào"; private static final String HELLO_JP = "こんにちは"; private Random rand = new Random(); private int randomId = rand.nextInt(); @GetMapping("/greeting") public Greeting greeting(@RequestParam(value = "language", defaultValue = "english") String language) { String hello = ""; switch (language) { case "vietnamese": hello = HELLO_VN; break; case "japanese": hello = HELLO_JP; break; default: hello = HELLO_EN; break; } return new Greeting(randomId, hello); } }
Ở đây có 1 và điều nổi bật sau:
- @GetMapping thể hiện đây là 1 api get, và có endpoint là /greeting tương ứng với hàm greeting
- @RequestParam bind giá trị từ request param language tới param language của hàm Greeting. Trong trường hợp không có giá trị nào trong request, giá trị mặc định english sẽ được sử dụng
- @RestController là cách viết gọn của @Controller và @ResponseBody – 2 annotation đánh dấu đây là controller và sẽ trả về 1 response dưới dạng JSON
- Object Greeting của chúng ta sẽ được Spring tự động convert ra dạng JSON
c) Chạy project
- Để chạy project, ta vào file DemoApplication.java, chuột phải và chọn như sau:
- Mở trình duyệt và tận hưởng thành quả thôi!
5. Lời kết
Trên đây là những điều cơ bản nhất về Spring framework. Tuy nhiên, bản thân Spring còn có rất nhiều điều hay ho đang đợi chúng ta ở phía trước. Hẹn gặp lại các bạn ở phần 2 của blog – khi chúng ta sẽ cùng build 1 Web API có đủ CRUD với Spring nhé!