Converter trong Spring
Spring Converter là gì?
Spring Converter
là một đối tượng được dùng để chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác.
Ví dụ, chúng ta có thể biểu diễn cùng một ngày theo những định dạng khác nhau, chẳng hạn như: “December 25, 2016,” 12/25/2016,” “2016-12-25”.
Mặc định, Spring sẽ sử dụng định dạng ngày của địa phương hiện tại (current locale). Chẳng hạn, định dạng của Hoa Kỳ sẽ là MM/dd/yyyy
. Trong trường hợp chúng ta muốn thay đổi định dạng của ngày khi liên kết một trường string với một đối tượng LocalDate thì chúng ta cần viết một converter để chuyển đổi từ string
sang ngày.
Lưu ý: Lớp java.time.LocalDate
là một lớp mới được bổ sung cho Java 8, thay thế cho lớp java.util.Date
. Chúng ta nên sử dụng bộ API mới về ngày tháng và thời gian, thay vì sử dụng các lớp Date và Calendar như cũ.
Để tạo một Converter, chúng ta viết một lớp Java triển khai interface org.springframework.core.convert.converter.Converter
. Đây là một interface generic:
public interface Converter<S, T>
- S đại diện cho kiểu dữ liệu nguồn
- T đại diện cho kiểu dữ liệu đích
Chẳng hạn, nếu muốn tạo một converter để chuyển đổi từ kiểu Long sang kiểu LocalDate thì chúng ta có thể khai báo một lớp như sau:
public class MyConverter implements Converter<Long, LocalDate> {
// Write code here
}
Bên trong lớp này, chúng ta triển khai phương thức convert() của interface Converter.
T convert(S source)