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é!

Add a Comment

Scroll Up